当前位置:  开发笔记 > 编程语言 > 正文

CollectionBase与泛型

如何解决《CollectionBase与泛型》经验,为你挑选了2个好方法。

我正在将应用程序从.NET 1.1迁移到.NET 2.0.我应该删除CollectionBase的所有用途吗?如果是这样,迁移的最佳策略是什么?



1> Mark Ingram..:

是的,要查看的最佳类是在System.Collections.Generic中.
我通常使用List.

您可以使用两种方法:

一个

public class MyClass
{
  public List Items;
}

public class MyItemCollection : List
{
}

public class MyClass
{
  public MyItemCollection Items;
}

这两种方法只是略有不同,如果您计划扩展List的功能,则只需要使用方法(B).

这是一个更多信息的链接:http:
//msdn.microsoft.com/en-us/library/6sh2ey19(VS.80).aspx

关于已经实现的类,可以删除IList接口中指定的所有函数.例如

public int Add(InstrumentTradeDataRow instTrade) { return List.Add(instTrade); }

这可以删除,因为List已经为您实现了类型安全的Add功能.

有关更多信息,请参阅此链接:http:
//msdn.microsoft.com/en-us/library/3wcytfd1(VS.80).aspx


如果你想要实现chaneg,你应该真正继承Collection ,否则没有虚拟方法......加上LINQ提供了缺少的功能(Find等).

2> Marc Gravell..:

通常,List您通常需要的大部分内容.如果你想自定义行为,你应该继承Collection- 这有virtual方法,所以你可以在添加/删除/更新等时调整行为.你不能这样做,List因为没有(有害的)virtual方法.


@abatishchev - 不,但``InsertItem`*是*(处理`Add`和`Insert`),``SetItem`(处理重新赋值)
推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有