我有一个像这样的嵌套类结构
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)
我通过反射进行了尝试,但是我能够获得基类的后代类,而不是像上面的静态基类中嵌套的类。
提前致谢,
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)