假设我有一个基类:
public class Base{
}
我有一个继承自Base Class的类Derived:
public class Derived: Base{
}
是否可以为List<T>
类编写一个仅从Base类继承的扩展方法,如下所示:
public static string F(this List<Base> baseClass){
return "This class inherits from Base Class";
}
扩展方法适用于List<Base>
和List<Derived>
。但它不适合我。
答案 0 :(得分:9)
Action
该方法必须是通用的,因为public static string F<T>(this List<T> baseClass)
where T : Base
{
return "This class inherits from Base Class";
}
不是List<Derived>
的子类型(也不是超类型)。
如果List<Base>
足够和这是一个接口或委托方法,我认为你也可以用协方差来解决这个问题。