获取传递给函数的参数的名称

本文关键字:参数 函数 获取 | 更新日期: 2023-09-27 17:49:48

可能重复:
获取变量或参数的名称

我有这个功能。

public void AddVariable( String str)
{
    Response.Write(str); // will write the value of str
}

但我需要编写传递到函数中的字符串变量的名称。

例如:

String temp = "test Variable";
AddVariable(temp);

在这里,我需要获得函数中变量的名称,而不是

即,我需要在函数中获取">temp",而不是">测试变量。"。

是波斯比尔吗?

获取传递给函数的参数的名称

您可以获取函数内变量的名称("str"(,但除非将其作为第二个参数传入,否则无法获取传递到函数中的变量的名称。

获取传递给函数的变量的名称是没有意义的,因为如果传递了一个文本(如AddVariable("test variable")(,甚至可能没有变量。

您不需要参数名称(可能来自反射(,而是需要作为参数传递的变量名称。AFAIK,出于所有实际目的,这对于函数内的代码来说是不可能的。

另一方面,因此,可以对应用程序域中加载的所有程序集进行代码分析,找到对方法的所有调用,然后进行堆栈遍历以确定可能的调用,这样就可以在调用方法中确定变量名(同样,如果在调用方法中可能有很多调用,使猜测变量名变得困难,并且您必须依赖IL偏移量等(,但这太复杂了。

也许,你可以说明这样要求的原因,也可以有一些替代方案。例如,您可以在方法代码中获取并记录堆栈跟踪,这些代码可用于例如故障排除。