繼承我有一個通用的抽象類,這是我從派生:如何確定一個對象是否從一個抽象的通用類
abstract class SuperClass<T>
where T : SuperDataClass
abstract class SuperDataClass
數據類型僅限於SuperDataClass,所以每一個具體的數據類型必須從SuperDataClass繼承。 最後,我有對超類和SuperDataClass inheriters的,例如:
class DataClassA : SuperDataClass
class ClassA : SuperClass<DataClassA>
class DataClassB : SuperDataClass
class ClassB : SuperClass<DataClassB>
如何檢查如果一個對象,例如ClassA從SuperClass繼承而不知道可能的數據類型?
我嘗試以下,這不工作:
if (testObject.GetType().IsAssignableFrom(typeof(SuperClass<SuperDataClass>))) {
Console.WriteLine("The test object inherits from SuperClass");
}
那麼,如何if語句需要什麼樣子的?
我很好奇你爲什麼想在運行期間知道這一點。你能詳細說明這個以滿足我的好奇心嗎? –
嘗試使用* is *運算符http://msdn.microsoft.com/en-us/library/scekt9xw.aspx – Kimi
我有一種處理多種類型的對象的方法。他們都有一個共同的抽象類,在我的例子SuperClass派生自。所以我需要在運行期間以相同的方式處理從SuperClass 派生的所有對象。如果可能的話,我不希望爲每個具體類型單獨處理。 –
sqeez3r