9

私はこのparamsパラメーターを何回も見てきましたが、その意味を考えずに常に削除していました。今、私はその目的を学びました。私が学んだことは、paramsパラメーターはパラメーター リストの最後でなければならないということです。しかし、これは、デフォルト値が指定されているパラメーターについて学んだことです。例:

MyMethod(string Name, int blah=0). 

問題は、を使用する必要があるときに上記のようにデフォルト値を指定する必要がある場合params、これを行うことができますか? もしそうなら、最後に宣言する必要があるのはどれですか? 例:

MyMethod(int blah=0, params string[] variableData). 

再び助けてくれてありがとう。ジェームズ

4

2 に答える 2

7

あなたの例は正しいです:

public void TestMethod(string name = "asdasd", params int[] items)
{
}

paramsその前にどのパラメーターが使用されていても、最後にする必要があります。

于 2013-02-28T06:54:29.757 に答える
5

はい、paramsここでは特殊なケースです。デフォルト値のないパラメーターがデフォルト値を持つパラメーターの後続く唯一の状況です。

ただし、オプションのパラメーターも指定しないと、メソッドを呼び出してparams(空でない配列の場合) 側面を利用することはできません。

MyMethod(5, "x", "y");                            // Fine, no defaulting
MyMethod(variableData: new string[] { "x", "y"}); // Default for blah
MyMethod();                                       // Default for blah, empty variableData
MyMethod(new string[] { "x, "y" });               // Invalid   
MyMethod("x", "y");                               // Invalid
于 2013-02-28T06:59:39.063 に答える