自定义集合中的C#抽象和泛型
我对C#泛型和抽象有一些不一致之处。 我有一个抽象类AbstrList,它由包含AbstRec列表的类继承自定义集合中的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
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)
{
...
}
}