你怎么能得到方法参数的名字?

如果我有一个方法如:

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的名称

https://msdn.microsoft.com/en-us/library/dn986596.aspx