C# определенные переменные в методе в виде списка - это возможно?

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

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

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

2 ответа

Решение

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

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

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

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

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

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

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

foreach (LocalVariableInfo variable in MethodInfo.GetCurrentMethod().GetMethodBody().LocalVariables)
{
    Console.WriteLine(variable);
}
Другие вопросы по тегам