gpt4 book ai didi

c# - 如何获取传递给函数的变量的名称?

转载 作者:IT王子 更新时间:2023-10-29 03:46:48 26 4
gpt4 key购买 nike

让我用下面的例子来解释我的问题:

public string ExampleFunction(string Variable) {
return something;
}

string WhatIsMyName = "Hello World";
string Hello = ExampleFunction(WhatIsMyName);

当我将变量WhatIsMyName 传递给ExampleFunction 时,我希望能够获得原始 变量名称的字符串。也许是这样的:

Variable.OriginalName.ToString() // == "WhatIsMyName"

有什么办法吗?

最佳答案

你想要的东西无法直接实现,但你可以使用 C# 3.0 中的表达式:

public void ExampleFunction(Expression<Func<string, string>> f) {
Console.WriteLine((f.Body as MemberExpression).Member.Name);
}

ExampleFunction(x => WhatIsMyName);

请注意,这依赖于未指定的行为,虽然它在 Microsoft 当前的 C# 和 VB 编译器中工作,在 Mono 的 C# 编译器中工作,但不能保证这不会在未来的版本中停止工作。

关于c# - 如何获取传递给函数的变量的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com