は、私はこのように定義された機能を持っています。組み合わせGetPropertyName +複数のparams機能(のparamsキーワード)
GetPropertyName(()=> SomeParameter) - >私の問題は、複数のパラメータの関数でこれを組み合わせている
を文字列 "SomeParameter" を返します。
は、この機能を取る:
public static string NameOfFirstEmptyParam(params string[] parameters)
{
foreach (string p in parameters)
{
if (String.IsNullOrWhiteSpace(p))
return GetPropertyName<String>(() => p)
}
return null;
}
あなたが想像できるように、私たちがしなければ、この:
string param0 = "0";
string param1 = "1";
string param2 = null;
NameOfFirstEmptyParam(param0, param1, param2);
機能は、 "P" を返します。
私は代わりに "param2"を取得したいと思います。任意の提案やヒント?
ありがとうございます。
params'が事故/偶然ではない 'の構文を実行します。呼び出しコードは、配列を作成し、ここで 'parameters'という* single *パラメータとして渡す必要があります。 'NameOfFirstEmptyParam'の内部では、その1つのパラメータだけを受け取ります。あなたに渡された配列を取り込む*の一部として使用された変数を識別するために使用された名前は、 'NameOfFirstEmptyParam'メソッドの「スコープ内」ではありません。 –
@Damien_The_Unbelieverと同様に、実行時に 'paramX'はどこにもありません。これらは' NameOfFirstEmptyParam(new string [] {"0"、 "1"、null}); 'と書くことと等価です。 – zaitsman