从类型集合中获取公共基类的最简单方法是使用 C# 语言中的 typeof
关键字和 Type
类的 GetGenericTypeDefinition()
方法。
首先,需要创建一个泛型类型,该类型具有要检查的类型集合中的所有类型的公共基类。例如,如果要检查 List<int>
和 List<string>
的公共基类,可以创建一个泛型类型 MyList<T>
,其中包含要检查的类型的公共基类。
public class MyList<T> : List<T>
{
}
然后,可以使用 typeof
关键字获取 MyList<T>
类型的 Type
对象,并使用 GetGenericTypeDefinition()
方法获取泛型类型定义。
Type myListType = typeof(MyList<>);
Type genericTypeDefinition = myListType.GetGenericTypeDefinition();
现在,可以使用 genericTypeDefinition
变量来获取任何泛型类型的公共基类。例如,可以使用以下代码获取 List<int>
和 List<string>
的公共基类。
Type listOfIntType = typeof(List<int>);
Type listOfStringType = typeof(List<string>);
Type listBaseType1 = genericTypeDefinition.MakeGenericType(listOfIntType.GetGenericArguments());
Type listBaseType2 = genericTypeDefinition.MakeGenericType(listOfStringType.GetGenericArguments());
在这个例子中,listBaseType1
和 listBaseType2
都将是 MyList<T>
类型的 Type
对象,但是它们的泛型参数不同。listBaseType1
的泛型参数是 int
,而 listBaseType2
的泛型参数是 string
。
总之,使用 typeof
关键字和 Type
类的 GetGenericTypeDefinition()
方法可以轻松地获取类型集合中的公共基类。
领取专属 10元无门槛券
手把手带您无忧上云