使用父属性调用父方法

时间:2018-05-10 17:46:43

标签: c#

我想创建一个排序功能。

SortList()

当我致电Child1时,我收到错误,无法将Parent转换为input。  我不知道如何实现界面或T?

1 个答案:

答案 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 { }