8

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

我希望能够将变量的名称作为字符串获取。

这可以通过使用无参数 lambda 表达式有效地实现。但是,这会产生性能开销,而且它不是内置功能。

.NET 4.5 CallerMemberNameAttribute提供了将调用者的名称作为方法参数提供。这为我们提供了一种内置且更好(在某些情况下)的方法来针对特定情况执行此操作。

.NET 4.5 针对特定上下文在这方面提供了改进。现在还有更好的 ^ 方法将任何变量的名称作为字符串获取吗?

根据要求,这是我想要实现的一般用法示例:

//Assume 'myVariable' is a local variable, member variable, static member variable, constant, parameter or even a property.
string myVariableName = ...; //This should get the string name of myVariable

^更好,我的意思是更快,不需要反射,内置于 .NET 或更优雅,但最好是这些的组合。

4

1 回答 1

3

不,没有更好/更快的方法。我认为,您链接的表达式树方式是获取变量名称的唯一方法。

, CallerMemberNameAttribute,是 .NET 4.5 在该领域中引入的唯一新功能CallerFilePathAttributeCallerLineNumberAttribute

于 2012-10-31T10:23:59.610 回答