parms(リフレクションを使用してループ内で)の値を取得する方法を教えてください。 以前の質問では、誰かが反射を使ってparmsをループする方法を教えてくれました。私はこれをしたい理由を知っていなければならない場合C#リフレクションを使用してparmsの値を取得する
static void Main(string[] args)
{
ManyParms("a","b","c",10,20,true,"end");
Console.ReadLine();
}
static void ManyParms(string a, string b, string c, int d, short e, bool f, string g)
{
var parameters = MethodBase.GetCurrentMethod().GetParameters();
foreach (ParameterInfo parameter in parameters)
{
string parmName = parameter.Name;
Console.WriteLine(parmName);
//Following idea required an object first
//Type t = this.GetType();
//t.GetField(parmName).GetValue(theObject));
}
}
、こちらを参照してください。すべての .NET Reflection of all method parameters
おかげ - それは、Python、PERL、PHPのように、これは簡単だろうと思われます。
リフレクションではないかもしれませんが、フィールド名を取得するためにリフレクションを使用すると、名前に基づいて値を取得する簡単な動的方法があるようです。 私はAOP(Aspect Oriented Programming)をまだ試していません。 これは、私が1時間か2時間でやり遂げることができなければ、おそらくそれをしないだろうということの一つです。
を参照してくださいたぶん何かが反射によって、あなたがIEnumerableをを使用した場合に生成されるステートマシンを調べることによって行うことができますか?ちょうど私が自分自身を実現する方法を知りませんでした:()今日重複した質問のためにここにコメントしてください – Jbjstam