以编程方式获取嵌套的静态类名称并访问方法

orf*_*uit 1 c#

我有一个像这样的嵌套类结构

public static class Animals{


    private static class Dolphins
    {
        public static int GetAge()
        {

        }
    }

    private static class Cats
    {
        public static int GetAge()
        {

        }
    }

    private static class Dogs
    {
        public static int GetAge()
        {

        }
    }

}
Run Code Online (Sandbox Code Playgroud)

是否有可能在for循环中以编程方式获取子类名称,因此我可以为所有它们调用GetAge()方法?像这样(伪代码):

foreach(subclass in Animals)
{
   subclass.GetAge()
}
Run Code Online (Sandbox Code Playgroud)

我通过反射进行了尝试,但是我能够获得基类的后代类,而不是像上面的静态基类中嵌套的类。

提前致谢,

Mar*_*ell 5

foreach(var type in typeof(Animals).GetNestedTypes(
    BindingFlags.Public | BindingFlags.NonPublic))
{
    var method = type.GetMethod("GetAge", BindingFlags.Static | BindingFlags.Public,
        null, Type.EmptyTypes, null);
    if (method != null)
    {
        int age = (int)method.Invoke(null, null);
        Console.WriteLine(age);
    }
}
Run Code Online (Sandbox Code Playgroud)