如何獲取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)的解決方案。 這是其中一件事,如果我不能在一兩個小時內做到這一點,我可能不會這樣做。
也許事情就可以由通過反射檢查,當你使用一個IEnumerable所生成的狀態機來完成?只是一個想法,我不知道如何實現自己:-)(今天因爲一個重複的問題在這裏評論) – Jbjstam 2016-10-10 16:40:07