在C#中获取变量和参数名称
在C#中,访问变量或参数的名称对于各种场景至关重要,例如错误处理和动态代码生成。让我们探讨如何实现这一点:
C# 6.0之前的解决方案:
在C# 6.0之前,获取成员名称的解决方法是使用反射。考虑以下类,它提供了一个用于检索成员名称的泛型方法:
<code class="language-csharp">public static class MemberInfoGetting { public static string GetMemberName<T>(Expression<Func<T>> memberExpression) { MemberExpression expressionBody = (MemberExpression)memberExpression.Body; return expressionBody.Member.Name; } }</code>
要使用此方法,您可以传入一个lambda表达式,该表达式引用变量或参数:
<code class="language-csharp">string testVariable = "value"; string nameOfTestVariable = MemberInfoGetting.GetMemberName(() => testVariable);</code>
C# 6.0及更高版本解决方案:
在C# 6.0及更高版本中,nameof
运算符提供了一种更简洁、更高效的获取成员名称的方法:
<code class="language-csharp">string testVariable = "value"; string nameOfTestVariable = nameof(testVariable);</code>
此运算符可用于参数、变量和属性:
<code class="language-csharp">public class TestClass { public void TestMethod(string param1, string param2) { string nameOfParam1 = nameof(param1); } }</code>
以上是如何获取 C# 变量或参数的名称?的详细内容。更多信息请关注PHP中文网其他相关文章!