44

C# でメソッド呼び出しを行っているときに、呼び出しているメソッドのパラメーターの名前が、コロンが追加されたインテリセンス リストに表示され、メソッドをフォーマットできることに気付き始めました。次のように呼び出します。

MethodCall(parameter1:value1, parameter2:value2);

これは新しい言語機能ですか? SQL でストアド プロシージャを呼び出して、次のようにパラメーター名を指定する方法を思い出します。

spDoSomeStuff @param1 = 1, @param2 = 'other param'

これは同様の機能ですか?もしそうなら、何のために?そうでない場合、それは何で、何に使用されますか。

4

5 に答える 5

44

これは新しい機能です。ここを参照してください: http://msdn.microsoft.com/en-us/library/dd264739.aspx たとえば、名前付きパラメーターは ObjectiveC の標準です。それらに慣れるまでには時間がかかりますが、それらは良いことです。見ただけで、パラメーターが何を意味するのかを知ることができます。

于 2011-03-10T16:27:02.830 に答える
24

名前付きパラメーターを使用すると、署名とは関係なく、カスタムの順序で引数の値を明示的に設定できます。メソッド シグネチャは、引数の型、つまり Foo( int i, bool b ) によって定義されます。これは、型 int および bool の引数のみをこの順序で受け入れます。名前付き引数を使用すると、b を最初に、i を 2 番目に渡すことができます。

于 2011-03-10T16:29:20.237 に答える
20

オプションのパラメーターとは異なり、特定の引数をスキップして、必要なパラメーターのみを渡すことができることに注意してください。

public void Example(int required, string StrVal = "default", int IntVal = 0)
{
    // ...
}

public void Test()
{
    // This gives compiler error
    // Example(1, 10);

    // This works
    Example(1, IntVal:10);
}
于 2014-03-20T18:11:49.740 に答える
5

Scott Gu は、彼のブログでこの新機能を紹介しています。

C# 4 の省略可能なパラメーターと名前付き引数

于 2011-03-10T16:27:46.497 に答える
2

これは、C# 4 で導入された名前付きパラメーターとオプション パラメーターです。

于 2011-03-10T16:27:50.893 に答える