Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义集合中的C#抽象和泛型_C#_Generics_Inheritance_Abstract Class - Fatal编程技术网

自定义集合中的C#抽象和泛型

自定义集合中的C#抽象和泛型,c#,generics,inheritance,abstract-class,C#,Generics,Inheritance,Abstract Class,我对C#泛型和抽象有一些不一致之处。 我有一个抽象类AbstrList,它由包含AbstRec列表的类继承 public abstract class AbstList<T> : IList<T> where T:AbstRec {...} public class List1 : AbstList<Rec1> {} public class List2 : AbstList<Rec2> {} 我想给每个类Rec添加一个对parent的引用,pa

我对C#泛型和抽象有一些不一致之处。 我有一个抽象类AbstrList,它由包含AbstRec列表的类继承

public abstract class AbstList<T> : IList<T> where T:AbstRec {...}
public class List1 : AbstList<Rec1> {}
public class List2 : AbstList<Rec2> {}
我想给每个类Rec添加一个对parent的引用,parent将是从列表继承的类。我如何做到这一点?到目前为止,我只能找到如何实现父类到类列表,但我不确定如何在AbstRec中正确声明和传递父类

这不起作用:((最佳重载方法在Public Rec1中有一些无效参数)

公共抽象类AbstRec
{
单亲;
公共AbstRec(AbstrList父级)
{
这个。父=父;
}
}   
公共类Rec1:AbstRec
{    
Public Rec1(父级):基(父级)
{
...
}
}   

当你发布问题时,你不应该简单地说“这不起作用”。你应该描述你得到的行为。如果它无法生成,你应该复制并跳过生成错误消息。你是说base(parent)没有在抽象类中设置父属性?是的,我只是对其进行了编辑以使其清晰。您不能将列表的元素隐式转换为父类型。如果可能,请使用泛型变量接口或处理转换。是否检查了差异问题?
public abstract class AbstRec {...}
public class Rec1 : AbstDb {...}
public class Rec2 : AbstDb {...}
public abstract class AbstRec 
{
    AbstList<AbstRec> parent;
    Public AbstRec(AbstList<AbstRec> parent)
    {
        this.parent=parent;
    }
}   

public  class Rec1 : AbstRec
{    
    Public Rec1(AbstList<Rec1> parent) : base(parent)
    {
        ...
    }
}