有没有更好的方法将变量的名称作为.NET 4.5中的字符串?

Sam*_*Sam 8 .net c# reflection .net-4.5

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

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

这可以通过使用无参数的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
Run Code Online (Sandbox Code Playgroud)

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

Jan*_*Jan 3

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

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