我想创建一个排序功能。
SortList()
当我致电Child1
时,我收到错误,无法将Parent
转换为input
。
我不知道如何实现界面或T?
答案 0 :(得分:2)
C#列表不是covariant。您可以使用IEnumerable
代替,这是协变的。
List<string> strings = new List<string>();
IEnumerable<object> objects = strings; // this does work
List<object> objectList = strings; // this does not work
以下是适合您的简化版本。
public class Program
{
public static void Main()
{
Child1.SortList(new List<Child1>() {});
}
}
public class Parent
{
public static List<Parent> SortList(IEnumerable<Parent> list)
{
// et cetera
}
}
public class Child1 : Parent { }