首页 > 后端开发 > C++ > 我如何在运行时获取C#变量或参数的名称?

我如何在运行时获取C#变量或参数的名称?

Linda Hamilton
发布: 2025-01-27 03:51:12
原创
356 人浏览过

How Can I Get the Name of a C# Variable or Parameter at Runtime?

在C#中获取变量和参数名称

问题陈述:

确定传递给函数的变量或参数的名称。例如,给定以下代码:

<code class="language-csharp">var myInput = "input";
var nameOfVar = GETNAME(myInput); // ==> nameOfVar 应该等于 "myInput"

void testName([Type?] myInput)
{
   var nameOfParam = GETNAME(myInput); // ==> nameOfParam 应该等于 "myInput"
}</code>
登录后复制

我们如何在两种情况下获取“myInput”的名称?

解决方案:

C# 6.0之前的方案:

利用MemberInfoGetting类,您可以检索任何提供的成员的名称。以下是实现方法:

<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;
    }
}

// 获取变量名称:
string testVariable = "value";
string nameOfTestVariable = MemberInfoGetting.GetMemberName(() => testVariable);

// 获取参数名称:
public class TestClass
{
    public void TestMethod(string param1, string param2)
    {
        string nameOfParam1 = MemberInfoGetting.GetMemberName(() => param1);
    }
}</code>
登录后复制

C# 6.0及更高版本方案:

C# 6.0中引入的nameof运算符简化了检索参数、变量和属性名称的过程。以下是实现方法:

<code class="language-csharp">string testVariable = "value";
string nameOfTestVariable = nameof(testVariable);</code>
登录后复制

以上是我如何在运行时获取C#变量或参数的名称?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板