2012-12-28 66 views
1

可能重复的参数名:
get name of a variable or parameter获取传递给函数

我有这个功能。

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

但我需要写入传递给函数的字符串变量的名称。

例如:

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

在这里,我需要得到名字我的函数内部变量的,而不是

即,我需要'temp'在我的函数内,而不是'测试变量'。

这是可能吗?

+0

@rs,我试过这个答案,但是我只能得到'str'这个变量的名字,而不是我在 –

+0

@AkhilSekharan中通过的那个:看到这篇文章http://stackoverflow.com/questions/214086/如何获得方法名称参数-in -c –

+0

@pRosper K,它返回参数名称,而不是传入的字符串的名称。:( –

回答

4

你可以在函数内部获得变量的名字(“str”),但是你不能得到传入函数的变量的名字,除非你把它作为第二个参数传入。

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

3

您不需要参数名称(可能来自反射),而是一个已作为参数传递的变量名称。 AFAIK,所有的实际用途,这是不可能的功能内的代码。

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

也许,你可以说明这样的要求的原因,可以有一些选择。例如,您可以在您的方法代码中获取并记录堆栈跟踪,以便用于疑难解答。