这里有一个问题:
有一个父类Class01
,它有两个子类:Subclass0101
和Subclass0102
。Class01
及其子类还没有实例化。我们需要
- 枚举
Class01
中的所有子类。 - 将它们放入列表集合并输出该集合的内容。
- 使之尽可能通用,使用父类的名称(如
<Class1>
或左右-我不确定符号是否正确)。这样,如果我们有Class02
和SubClass0201
和SubClass0202
的子类,这个方法将是通用的。
你会是如此善良的帮助我们与代码组成,因为我无法组成现有的答案到一个项目?提前非常非常感谢你!!
这是我的意图:
namespace Temp
{
class Program
{
static void Main(string[] args)
{
// Not sure what to put here
Show<Class01>
// Not sure what to put here
public static Show<T1>
{
// and here
}
}
class Class01 {}
class SubClass0101 : Class01 {}
class SubClass0102 : Class01 { }
class Class02 { }
class SubClass0201 : Class02 { }
class SubClass0202 : Class02 { }
}
假设子类在同一程序集中:
public static IEnumerable<Type> GetAllSubTypesInSameAssembly(this Type type)
{
return type.Assembly
.GetTypes()
.Where(t => t != type && type.IsAssignableFrom(t));
}