私は新しいc#6演算子のnameofを使って、暗黙的にparams配列からキー/値の辞書を構築できると考えました。一例として、nameof演算子を使用してparams配列のパラメータの名前を暗示することは可能ですか?
、以下のメソッド呼び出し考える:私はparams配列から、要素の名前を意味することができるようになりますテストの実装があるだろうことを確認していない
string myName = "John", myAge = "33", myAddress = "Melbourne";
Test(myName, myAge, myAddress);
を。
nameof
を反射せずにこれを行う方法はありますか?
private static void Test(params string[] values)
{
List<string> keyValueList = new List<string>();
//for(int i = 0; i < values.Length; i++)
foreach(var p in values)
{
//"Key" is always "p", obviously
Console.WriteLine($"Key: {nameof(p)}, Value: {p}");
}
}
'nameof'はコンパイル時の機能であり、実行時の機能ではありません。 –
コンパイルされたILに 'myName'、' myAge'などが存在する必要はありません。それが存在しなければ、それは得られない。 –