2013-07-28 99 views
0

我想從基類中定義的靜態方法獲取派生類類型。
的結構是這樣的:從靜態方法獲取類類型(在基類上)

class BaseClass 
{ 
    public static Type GetType() 
    { 
     return MethodBase.GetCurrentMethod().GetType(); 
    } 
} 

class Foo : BaseClass 
{ 
} 

我需要的代碼Foo.GetType()返回但它返回BaseClass的 :(
我得類型,而不使用泛型或初始化實例
如何。我可以做到這一點嗎?

回答

1

爲什麼不使用typeof(Foo)?沒有更多關於你在做什麼的上下文,它看起來應該完美地工作

1

由於Foo不重新聲明GetTypeFoo.GetType()實際上是與BaseClass.GetType()相同的方法。所以當你編寫Foo.GetType()時,編譯器會發出BaseClass.GetType()的調用,因爲BaseClass是實際實現該方法的類型。

無論如何,你在做什麼沒有道理;如果您編寫Foo.GetType(),則您已知道您希望它返回Foo,因此您只能使用typeof(Foo)

相關問題