[英]List all concrete or abstract classes of object
是否有可能在C#中,通過反射或其他方法,返回一個對象的所有超類(具體和抽象,主要是對具體類感興趣)的列表。 例如,傳入“Tiger”類將返回:
static void VisitTypeHierarchy(Type type, Action<Type> action) {
if (type == null) return;
action(type);
VisitTypeHierarchy(type.BaseType, action);
}
例:
VisitTypeHierarchy(typeof(MyType), t => Console.WriteLine(t.Name));
您可以使用Type.IsAbstract
屬性輕松處理抽象類。
當然,使用“GetType()”方法來獲取提供的對象的類型。 每個Type實例都有一個“ BaseType ”屬性,它提供直接繼承的類型。 您可以遞歸地跟隨類型,直到找到具有null BaseType(即Object)的Type
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.