首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从类型集合中获取公共基类的最简单方法

从类型集合中获取公共基类的最简单方法是使用 C# 语言中的 typeof 关键字和 Type 类的 GetGenericTypeDefinition() 方法。

首先,需要创建一个泛型类型,该类型具有要检查的类型集合中的所有类型的公共基类。例如,如果要检查 List<int>List<string> 的公共基类,可以创建一个泛型类型 MyList<T>,其中包含要检查的类型的公共基类。

代码语言:csharp
复制
public class MyList<T> : List<T>
{
}

然后,可以使用 typeof 关键字获取 MyList<T> 类型的 Type 对象,并使用 GetGenericTypeDefinition() 方法获取泛型类型定义。

代码语言:csharp
复制
Type myListType = typeof(MyList<>);
Type genericTypeDefinition = myListType.GetGenericTypeDefinition();

现在,可以使用 genericTypeDefinition 变量来获取任何泛型类型的公共基类。例如,可以使用以下代码获取 List<int>List<string> 的公共基类。

代码语言:csharp
复制
Type listOfIntType = typeof(List<int>);
Type listOfStringType = typeof(List<string>);

Type listBaseType1 = genericTypeDefinition.MakeGenericType(listOfIntType.GetGenericArguments());
Type listBaseType2 = genericTypeDefinition.MakeGenericType(listOfStringType.GetGenericArguments());

在这个例子中,listBaseType1listBaseType2 都将是 MyList<T> 类型的 Type 对象,但是它们的泛型参数不同。listBaseType1 的泛型参数是 int,而 listBaseType2 的泛型参数是 string

总之,使用 typeof 关键字和 Type 类的 GetGenericTypeDefinition() 方法可以轻松地获取类型集合中的公共基类。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券