我有一种情况,我将方法名称作为字符串传递给函数,但我不希望它硬编码。 例如有没有办法在c#中动态获取方法名?
void MyMethodName()
{
// some code
}
void SomeOtherMethod()
{
SomeExternalLibrary.ExternalClass.FunctionWithStringParameter("MyMethodName");
}
我想是这样的:
FunctionWithStringParameter(MyMethodName.ToString());
这样我可以通过“查找所有引用”跟踪方法调用的,我可以使用重构无后顾之忧。
http://stackoverflow.com/questions/2968352/using-system-reflection-to-get-a-methods-full-name 可能的帮助。这就是说,如果你不想使用反射 - 你可以将字符串设置为公共常量。 – Haedrian
您传递方法名称的原因是什么?你是否通过名字查找来调用该方法?相反,尝试使用委托或lambda表达式。 –
我相信你正试图解决错误的问题。如果您需要更好的重构支持,您应该使用像[ReSharper](http://www.jetbrains.com/resharper/)这样的工具来帮助您重新命名和导航超出Visual Studio的能力范围。 –