c# 获取父类的子类
时间: 2023-09-03 09:13:09 浏览: 147
子类的声明-C#编程入门
在 C# 中,可以使用反射来获取一个父类的所有子类。以下是示例代码:
```csharp
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
Type parentType = typeof(ParentClass);
Assembly assembly = Assembly.GetExecutingAssembly(); // 获取当前程序集
foreach (Type type in assembly.GetTypes())
{
if (type.IsSubclassOf(parentType))
{
Console.WriteLine(type.Name);
}
}
Console.ReadLine();
}
}
class ParentClass
{
}
class ChildClass1 : ParentClass
{
}
class ChildClass2 : ParentClass
{
}
```
在上面的示例中,我们首先获取了父类 `ParentClass` 的 `Type`,然后通过 `Assembly.GetExecutingAssembly()` 方法获取当前程序集。接着,我们使用 `assembly.GetTypes()` 方法获取当前程序集中所有类型,并遍历这些类型。对于每个类型,我们使用 `Type.IsSubclassOf()` 方法判断它是否是 `ParentClass` 的子类,如果是,则输出该类型的名称。
阅读全文