c#将方法中的变量定义为列表-可能吗?
在php中,可以将方法定义的变量作为数组获取:c#将方法中的变量定义为列表-可能吗?,c#,variables,defined,tolist,C#,Variables,Defined,Tolist,在php中,可以将方法定义的变量作为数组获取: function test($a,$b){ print_r( get_defined_vars() ); } 在C#中是否可能?您可以使用反射来实现这一点 如果您希望以内联方式执行此操作,则首先需要确定当前使用的方法 var currentMethod = System.Reflection.MethodInfo.GetCurrentMethod(); 然后可以检索该方法的参数: foreach(ParameterInfo
function test($a,$b){
print_r(
get_defined_vars()
);
}
在C#中是否可能?您可以使用反射来实现这一点 如果您希望以内联方式执行此操作,则首先需要确定当前使用的方法
var currentMethod = System.Reflection.MethodInfo.GetCurrentMethod();
然后可以检索该方法的参数:
foreach(ParameterInfo parameter in currentMethod.GetParameters())
{
var name = parameter.Name;
//...
}
您可以使用反射来实现这一点 如果您希望以内联方式执行此操作,则首先需要确定当前使用的方法
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);
}
类似于
string a = "hello";
int b = 20;
DateTime c = DateTime.Now;
foreach (LocalVariableInfo variable in MethodInfo.GetCurrentMethod().GetMethodBody().LocalVariables)
{
Console.WriteLine(variable);
}
返回当前范围内的所有变量,包括参数和全局变量。谢天谢地,C#没有相似之处。事实上,“作用域”并不像在编译时或PHP中那样存在于运行时。你到底想干什么?可能有一个很好的方法…@Kobi-我有很多参数的WebService方法,我想把它转换成一个列表,并在WebService外部验证它们。我不想一次又一次地重新申报。Toda返回当前范围内的所有变量,包括参数和全局变量。谢天谢地,C#没有相似之处。事实上,“作用域”并不像在编译时或PHP中那样存在于运行时。你到底想干什么?可能有一个很好的方法…@Kobi-我有很多参数的WebService方法,我想把它转换成一个列表,并在WebService外部验证它们。我不想一次又一次地重新申报。Todaget_defined_vars()包含方法参数,但不限于此。Idd,它获取其调用()范围内的变量。查看OP的问题,获取当前方法的参数对他来说应该足够了。get_defined_vars()包括方法参数,但不限于此。Idd,它获取调用()的范围内的变量。看着OP的问题,获取当前方法的参数对他来说应该足够了。据我所知,这甚至不包括变量的名称和值,而是指编译后的代码,可能有额外的变量(比如IEnumerator和变量集合)+1;可能需要将方法参数附加到此。据我所知,它甚至不包括变量的名称和值,并且引用编译后的代码,其中可能有额外的变量(例如IEnumerator和变量集合)+1;可能要将方法参数附加到此。