C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了有没有办法在c#中动态获取方法名称?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个案例,我将方法名称作为字符串传递给函数,但我不希望它硬编码.
例如

void MyMethodName()
{
    // some code
}

void SomeOtherMethod()
{
    SomeExternalLibrary.ExternalClass.FunctionWithStringParameter("MyMethodName");
}

我想要这样的东西:

FunctionWithStringParameter(MyMethodName.ToString());

这样我可以通过“查找所有引用”来跟踪方法调用,并且我可以毫无后顾之忧地使用重构.

解决方法

也许最简单的方法是提供一个重载FunctionWithStringParameter,它可以将一个委托作为参数.

过载可能很简单:

void FunctionWithStringParameter(Action d)
{
    FunctionWithStringParameter(d.Method.Name);
}

并称之为:

FunctionWithStringParameter(MyMethodName);

要接受具有不同签名的方法,您必须提供许多不同的重载,或者接受Delegate作为参数,如下所示:

void FunctionWithStringParameter(Delegate d)
{
    FunctionWithStringParameter(d.Method.Name);
}

不幸的是,如果你这样做,你必须通过指定委托类型来调用它:

FunctionWithStringParameter((Action)MyMethodName);

大佬总结

以上是大佬教程为你收集整理的有没有办法在c#中动态获取方法名称?全部内容,希望文章能够帮你解决有没有办法在c#中动态获取方法名称?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: