C # определенные переменные в методе в виде списка - это возможно? - PullRequest
1 голос
/ 21 сентября 2011

В php вы можете получить переменные, определенные методом, в виде массива:

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

Возможно ли это в C #?

Ответы [ 2 ]

3 голосов
/ 21 сентября 2011

Что-то вроде ...

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

foreach (LocalVariableInfo variable in MethodInfo.GetCurrentMethod().GetMethodBody().LocalVariables)
{
    Console.WriteLine(variable);
}
2 голосов
/ 21 сентября 2011

Вы можете использовать отражение для этого.

Если вы хотите сделать это встроенным, то сначала вам нужно определить метод, в котором вы сейчас находитесь.

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

Затем вы можете получить параметры этого метода:

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