簡體   English   中英

列出對象的所有具體或抽象類

[英]List all concrete or abstract classes of object

是否有可能在C#中,通過反射或其他方法,返回一個對象的所有超類(具體和抽象,主要是對具體類感興趣)的列表。 例如,傳入“Tiger”類將返回:

  1. 動物
  2. 賓語
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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM