我有一種情況,我將方法名稱作爲字符串傳遞給函數,但我不希望它硬編碼。 例如有沒有辦法在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的能力範圍。 –