public class BusinessObjects<O>
where O : BusinessObject
{
void SomeMethod()
{
var s = O.MyStaticMethod(); // <- How to do this?
}
}
public class BusinessObject
{
public static string MyStaticMethod()
{
return "blah";
}
}
是否存在正確的面向對象的方法來完成此操作,還是需要進行反射?如何訪問通用類型的靜態方法
編輯:我試圖過分簡化這個問題而忽略了一個重要的觀點。 MyStaticMethod使用反射並需要派生類型來返回正確的結果。但是,我剛剛意識到我的設計中存在另一個缺陷,那就是我無法使用靜態虛擬方法,我認爲這是我所需要的。
看起來我需要找到另一種解決這個問題的方法。
在這裏尋找更多的信息:http://stackoverflow.com/q/196661/114029 – 2012-02-05 02:55:19
我認爲這是一個很好的問題。目前它不能在C#中完成。但是這對微軟來說很有用.Net 5+ – MarzSocks 2016-07-14 16:31:29