你怎么能得到方法参数的名字?
如果我有一个方法如:
public void MyMethod(int arg1, string arg2)
我将如何去获取参数的实际名称? 我似乎无法find任何在MethodInfo实际上会给我参数的名称。
我想写一个看起来像这样的方法:
public static string GetParamName(MethodInfo method, int index)
所以如果我用这个方法调用这个方法
string name = GetParamName(MyMethod, 0)
它会返回“arg1”。 这可能吗?
public static string GetParamName(System.Reflection.MethodInfo method, int index) { string retVal = string.Empty; if (method != null && method.GetParameters().Length > index) retVal = method.GetParameters()[index].Name; return retVal; }
上面的示例应该做你需要的。
尝试这样的事情:
foreach(ParameterInfo pParameter in pMethod.GetParameters()) { //Position of parameter in method pParameter.Position; //Name of parameter type pParameter.ParameterType.Name; //Name of parameter pParameter.Name; }
没有任何forms的错误检查:
public static string GetParameterName ( Delegate method , int index ) { return method.Method.GetParameters ( ) [ index ].Name ; }
你可以使用'Func <TResult>'和衍生物来使这个工作在大多数情况下
nameof(arg1)
将返回variablesarg1
的名称