gpt4 book ai didi

c# - 在c#中获取函数名称

转载 作者:可可西里 更新时间:2023-11-01 08:17:39 27 4
gpt4 key购买 nike

在 Unity 中使用协程或 InvokeRepeating 时,您必须提供一个字符串,其中包含您要调用的函数的名称。尽管更改该函数的名称会很痛苦,因为您必须记住更改使用它的协程。有更简洁的方法吗?

目前看起来是这样的:

InvokeRepeating ("SendChangedValues", SEND_RATE, SEND_RATE);

虽然有这样的东西会很好

InvokeRepeating (SendChangedValues.Name(), SEND_RATE, SEND_RATE); //or
InvokeRepeating (functions.GetName(SendChangedValues), SEND_RATE, SEND_RATE);

这在 C# 中可行吗?或者当我在不更改这些字符串的情况下更改函数名称时确保我收到错误/警告的其他内容。

编辑 1:我能想到的最干净的事情是用函数的名称创建一个 const 字符串,并将它放在函数本身之前。所以很难忘记更改字符串,因为它就在它上面,而且我也只需要更改一个 const 字符串即可更改所有协程。

谢谢!

最佳答案

啊……如果是下一个 C# 版本,您可以使用 nameof 运算符。

现在,这对您的事业有帮助吗?

private static string GetFunctionName(Action method)
{
return method.Method.Name;
}

调用使用:

string methodName = GetFunctionName(SendChangedValues);

您可能想探索不同的委托(delegate)类型.. Action、Func 等

上面的唯一问题是对于每个方法签名,您可能需要定义正确的签名/重载来获取名称。

关于c# - 在c#中获取函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22945775/

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