首页 > 后端开发 > C++ > 如何检索传递给C#函数的原始变量名称?

如何检索传递给C#函数的原始变量名称?

Patricia Arquette
发布: 2025-01-29 17:46:10
原创
438 人浏览过

How Can I Retrieve the Original Variable Name Passed to a C# Function?

获取传递给函数的原始变量名

在 C# 中,将变量作为参数传递给函数是很常见的做法。但是,获取传递变量的原始名称可能会很棘手。考虑以下示例:

<code class="language-csharp">public string ExampleFunction(string Variable)
{
    return "something"; // 修正:添加返回值
}

string WhatIsMyName = "Hello World";
string Hello = ExampleFunction(WhatIsMyName);</code>
登录后复制

当使用 WhatIsMyName 变量调用 ExampleFunction 时,我们可能希望获取原始变量的名称,例如:

<code class="language-csharp">Variable.OriginalName.ToString() // == "WhatIsMyName"</code>
登录后复制

在 C# 中是否可以实现这一点?

虽然无法直接获取原始变量名,但 C# 3.0 及更高版本可以使用 lambda 表达式提供一种解决方案:

<code class="language-csharp">public void ExampleFunction(Expression<Func<string>> f)
{
    Console.WriteLine(((MemberExpression)f.Body).Member.Name);
}

ExampleFunction(() => WhatIsMyName);</code>
登录后复制

注意: 此方法依赖于未指定的行为,可能与 C# 的未来版本或其他编译器不兼容。 它只适用于直接访问变量的情况,如果变量经过任何计算或转换,此方法将失效。 此外,这种技术主要用于反射和代码分析,不建议在常规代码中使用。

以上是如何检索传递给C#函数的原始变量名称?的详细内容。更多信息请关注PHP中文网其他相关文章!

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