c#将方法中的变量定义为列表 - 是否可能?

时间:2011-09-21 07:12:47

标签: c# variables defined tolist

在php中,您可以将方法定义的变量作为数组:

function test($a,$b){
  print_r(
       get_defined_vars()
  );
}

在C#中可以吗?

2 个答案:

答案 0 :(得分:3)

像...一样的东西。

string a = "hello";
int b = 20;
DateTime c = DateTime.Now;

foreach (LocalVariableInfo variable in MethodInfo.GetCurrentMethod().GetMethodBody().LocalVariables)
{
    Console.WriteLine(variable);
}

答案 1 :(得分:2)

你可以使用反射。

如果您想以内联方式执行此操作,则首先需要确定当前所使用的方法。

var currentMethod = System.Reflection.MethodInfo.GetCurrentMethod();

然后您可以检索该方法的参数:

foreach(ParameterInfo parameter in currentMethod.GetParameters())
{
    var name = parameter.Name;
    //...
}