我有一个使用C#.NET 2.0的项目(不能使用更高版本)。我想在第一个方法调用的方法中获取方法的参数名称。如果我从MyMethodsClass调用一个方法,我希望接收一个字符串,指示哪个参数无效,遵循MyCheckClass类中isValid方法中指示的某些条件。
使用以下代码,我得到一个返回&#34的字符串;请检查5参数"如果我打电话给myMehtod(5,1,1)。但我想获得,"请检查一个参数"。
我怎么能这样做? 谢谢!
public MyMethodsClass {
public string myMethod (int a, int b, int c) {
return MyCheckClass.isValid(a,b,c);
}
public string myMethod2 (int d, int e) {
return MyCheckClass.isValid(d,e);
}
}
//Other file
public class MyCheckClass {
public static string isValid (params object[] parameters) {
StringBuilder result= new StringBuilder();
for (int i = 0; i < parameters.Length; i++)
{
object p = parameters[i];
//Some checks...
if (p == null || p.Equals("") || p != 5)
{
result.Append("Please check the " + p + " parameter");
}
}
return result.toString();
}
}
答案 0 :(得分:3)
你结合了两件你已经知道的事情。
答案 1 :(得分:1)
这两行应该为你做的工作,也许需要适应但应该工作^^
MethodInfo info = typeof (MyMethodsClass).GetMethod("MethodName");
string name = info.GetParameters()[indexOfTheFaultyOne].Name;