タグ付けされた質問 「optional-parameters」

オプションのパラメーターは、呼び出し元が関数またはメソッドの呼び出しに含めることができるパラメーターですが、必須ではありません。省略すると、代わりにデフォルト値が使用されます。オプションのパラメーターは、ほとんどの場合にデフォルト値を使用する場合に役立ちますが、場合によっては指定する必要があります。


22
C#でオプションのパラメーターをどのように使用できますか?
注:この質問は、C#がオプションのパラメーターをまだサポートしていないときに(つまり、C#4の前に)尋ねられました。 プログラムでC#クラスから生成されるWeb APIを構築しています。クラスにはメソッドがGetFooBar(int a, int b)あり、APIにはのGetFooBarようなクエリパラメータを取るメソッドがあります&a=foo &b=bar。 クラスは、C#言語でサポートされていないオプションのパラメーターをサポートする必要があります。最善のアプローチは何ですか?

4
インターフェースで定義されたC#4オプションパラメーターがクラスの実装に適用されないのはなぜですか?
あなたがインターフェイス上でオプションのパラメータを指定した場合、私はC#4でのオプションのパラメータを持つことに気づいtは、ドン任意の実装クラスでそのパラメータのオプションを行う必要があります。 public interface MyInterface { void TestMethod(bool flag = false); } public class MyClass : MyInterface { public void TestMethod(bool flag) { Console.WriteLine(flag); } } したがって: var obj = new MyClass(); obj.TestMethod(); // compiler error var obj2 = new MyClass() as MyInterface; obj2.TestMethod(); // prints false オプションのパラメーターがこのように機能するように設計されている理由を誰かが知っていますか? 一方では、インターフェースで指定されたデフォルト値をオーバーライドする機能は便利だと思いますが、正直なところ、インターフェースでデフォルト値を指定できるかどうかは、実装の決定であるためわかりません。 一方、この切断は、具象クラスとインターフェースを常に交換して使用できるわけではないことを意味します。もちろん、これは実装でデフォルト値が指定されている場合は問題になりませんが、具体的なクラスをインターフェースとして公開している場合(たとえば、IOCフレームワークを使用して具体的なクラスを挿入する場合)、実際にはありません。呼び出し側は常にデフォルト値を提供する必要があるため、デフォルト値を持つポイント。


12
構成x = xは何ですか|| どういう意味?
JavaScriptをデバッグしていますが、これ||が何をするのか説明できませんか? function (title, msg) { var title = title || 'Error'; var msg = msg || 'Error on Request'; } 誰かが私にヒントを与えることはできますか、なぜこの男は使用していvar title = title || 'ERROR'ますか?私も時々var宣言なしでそれを見ます。


10
JavaScriptの関数呼び出しで名前付きパラメーターを提供する方法はありますか?
C#の名前付きパラメーター機能が非常に便利な場合があります。 calculateBMI(70, height: 175); これをJavaScriptで使用したい場合、何を使用できますか? 私が欲しくないのはこれです: myFunction({ param1: 70, param2: 175 }); function myFunction(params){ // Check if params is an object // Check if the parameters I need are non-null // Blah blah } 私がすでに使用したそのアプローチ。別の方法はありますか? これを行うために任意のライブラリを使用しても大丈夫です。

6
T-SQLストアドプロシージャでオプションのパラメーターを使用するにはどうすればよいですか?
テーブルを検索するストアドプロシージャを作成しています。さまざまな検索フィールドがあり、すべてオプションです。これを処理するストアドプロシージャを作成する方法はありますか?ID、FirstName、LastName、Titleの4つのフィールドを持つテーブルがあるとします。私はこのようなことをすることができます: CREATE PROCEDURE spDoSearch @FirstName varchar(25) = null, @LastName varchar(25) = null, @Title varchar(25) = null AS BEGIN SELECT ID, FirstName, LastName, Title FROM tblUsers WHERE FirstName = ISNULL(@FirstName, FirstName) AND LastName = ISNULL(@LastName, LastName) AND Title = ISNULL(@Title, Title) END この種の作品。ただし、FirstName、LastName、またはTitleがNULLのレコードは無視されます。Titleが検索パラメーターで指定されていない場合、TitleがNULLのレコードを含めたい-FirstNameとLastNameで同じ。おそらく動的SQLでこれを実行できると思いますが、それは避けたいと思います。


1
mavenコマンドラインは、単一のコマンドの特定のsettings.xmlをどのように指すのですか?
Mavenが単一のコマンドで使用しているデフォルトのsettings.xmlをオーバーライドするために、特定の設定ファイルを指すことは可能ですか?例: mvn clean install -Dparam # -> pass specific settings file path as param to override default "home/.m2/settings.xml"



8
C#4.0:TimeSpanを省略可能なパラメーターとして既定値で使用できますか?
これらはどちらも、コンパイル時の定数でなければならないというエラーを生成します。 void Foo(TimeSpan span = TimeSpan.FromSeconds(2.0)) void Foo(TimeSpan span = new TimeSpan(2000)) まず第一に、これらの値がコンパイル時に決定できない理由を誰かが説明できますか?また、オプションのTimeSpanオブジェクトのデフォルト値を指定する方法はありますか?

3
SQL Serverストアドプロシージャのオプションパラメータ?
SQL Server 2008でいくつかのストアドプロシージャを作成していますが、ここでオプションの入力パラメーターの概念が可能かどうか疑問に思いますか? 使用したくないパラメーターには常にNULLを渡し、ストアドプロシージャの値を確認し、そこから取得できると思いますが、ここでコンセプトが利用できるかどうかに興味がありました。ありがとう!

8
Rubyオプションパラメータ
このようなRuby関数を定義すると: def ldap_get ( base_dn, filter, scope=LDAP::LDAP_SCOPE_SUBTREE, attrs=nil ) 最初の2つと最後の引数のみを指定して呼び出すにはどうすればよいですか?なぜそんなものではないのですか ldap_get( base_dn, filter, , X) 可能ですか、それが可能であれば、どのように行うことができますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.