簡體   English   中英

如何獲取所有繼承的類

[英]How to get all inherited classes

假設我們有一個名為A的類,這個類是從B類繼承的, B類也是從C類繼承的。 我們可以根據需要擴展這個序列。 我們如何從這個序列中獲取所有類? 喜歡:

  1. 一個
  2. C
  3. ...

試試這個代碼:

        Type type = typeof(C);
        while (type.BaseType!=null) 
        {
            type = type.BaseType;
            Console.WriteLine(type.Name);
        }
        // C
        // B
        // A
        // Object
var assemblies = AppDomain.CurrentDomain.GetAssemblies();

foreach (var assembly in assemblies)
    foreach (Type type in assembly.GetTypes())
    {
        if (typeof(A).IsAssignableFrom(type))
            Console.WriteLine(type);
    }

// These can be in various projects / assemblies
class A { }
class B : A { }
class C : A { }
class D : B { }
class E { }
class F : E { }
class G : D { }

印刷:

A
B
C
D
G

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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