.net 通用的抽象类?什么';设计我的代码最好的方法是什么?

.net 通用的抽象类?什么';设计我的代码最好的方法是什么?,.net,generics,collections,virtual,abstract,.net,Generics,Collections,Virtual,Abstract,现在我迷失在抽象/虚拟/泛型/…,哪种方法最好 您应该将新建替换为覆盖,然后创建LocDataCollection:Collection,其中T:LocDataIsEqual和IsSame之间的区别是什么?您应该继承集合,而不是列表。IsEqual检查键是否相等,IsSame检查内容是否相同1。我将new更改为override,然后收到错误消息:“TypeA.Copy()”:返回类型必须为“LocData”,以匹配被重写的成员“LocData.Copy()”2。类型收集怎么样。我在哪里可以找到更

现在我迷失在抽象/虚拟/泛型/…,哪种方法最好

您应该将
新建
替换为
覆盖
,然后创建
LocDataCollection:Collection,其中T:LocData

IsEqual
IsSame
之间的区别是什么?您应该继承
集合,而不是
列表
。IsEqual检查键是否相等,IsSame检查内容是否相同1。我将new更改为override,然后收到错误消息:“TypeA.Copy()”:返回类型必须为“LocData”,以匹配被重写的成员“LocData.Copy()”2。类型收集怎么样。我在哪里可以找到更多的信息?
  class TypeA 
  {
      public TypeA Copy () { ... }
      public bool IsEqual(TypeA mytypeA) { ... }
      public bool IsSame(TypeA mytypeA) { ... }
      ...
  }

  class TypeACollection : List<TypeA>
  {
      public bool IsSame (TypeACollection typeAs)
      {
          if (Count != typeAs.Count) 
              return false;
          return this[0].IsSame(typeAs[0]);
      }
      ...
  }
class LocData 
{
    public virtual TypeA Copy () { ... }
    public virtual bool IsEqual(TypeA mytypeA) { ... }
    public virtual bool IsSame(TypeA mytypeA) { ... }
    ...
}

class LocDataCollection<T> : List<LocData> where T: LocData
{
    public bool IsSame (LocDataCollection<T> typeAs)
    {
        if (Count != typeAs.Count) 
        return false;
        return this[0].IsSame(typeAs[0]);
    }
    ...
}
class TypeA : LocData
{
    public new TypeA Copy () { ... }
    public new bool IsEqual(TypeA mytypeA) { ... }
    public new bool IsSame(TypeA mytypeA) { ... }
    ...
}

class TypeACollection : ???
{
    ??? 
    // so I can remove IsSame here, 
    // when I call IsSame, it will use one from LocDataCollection and still call 
    // TypeA.IsSame
    ...
}