在c#中获取函数的名称
发布时间:2020-12-15 06:53:56 所属栏目:百科 来源:网络整理
导读:在Unity中使用协同程序或InvokeRepeating时,必须使用要调用的函数的名称给出一个字符串.虽然如果您更改该函数的名称,这是一个痛苦,因为您必须记住更改使用它的协同程序.有没有更清洁的方法来做到这一点? 目前看起来像这样: InvokeRepeating ("SendChangedV
在Unity中使用协同程序或InvokeRepeating时,必须使用要调用的函数的名称给出一个字符串.虽然如果您更改该函数的名称,这是一个痛苦,因为您必须记住更改使用它的协同程序.有没有更清洁的方法来做到这一点?
目前看起来像这样: InvokeRepeating ("SendChangedValues",SEND_RATE,SEND_RATE); 虽然这样做会很好 InvokeRepeating (SendChangedValues.Name(),SEND_RATE); //or InvokeRepeating (functions.GetName(SendChangedValues),SEND_RATE); 这可能在c#中吗?或者其他的东西,确保我在更改功能的名称而不更改这些字符串时会收到错误/警告. 编辑1:我可以想到的最干净的事情是使用函数名称创建一个const字符串,并将其放在函数本身之前.所以很难忘记改变字符串,因为它就在它的正上方,我也只需要改变一个const字符串来改变所有的协同程序. 谢谢! 解决方法
嗯..如果是下一个C#版本,你可以使用nameof运算符.
现在,这是否有助于你的事业? private static string GetFunctionName(Action method) { return method.Method.Name; } 称为使用: string methodName = GetFunctionName(SendChangedValues); 你可能想要探索不同的委托类型.. Action,Func等 上面唯一的问题是,对于每个方法签名,您可能需要定义正确的签名/重载以获取名称. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |