【问题标题】:Rework custom collection to use whatever object返工自定义集合以使用任何对象
【发布时间】:2011-09-15 16:02:26
【问题描述】:

我有一些代码我总是用来收集我的对象。这段代码在我的一些项目中被使用了 10 次,并替换了对象。

有什么方法可以将它创建为一个可以接受任何对象的函数?我听说过<T>,但我不确定如何在其中使用它。

public class PageCollection : CollectionBase
    {
        public void Add(Page item)
        {
            InnerList.Add(item);
        }

        public void Remove(int index)
        {
            InnerList.RemoveAt(index);
        }

        public void Remove(Page item)
        {
            InnerList.Remove(item);
        }

        public Page this[int index]
        {
            get
            {
                return (Page)InnerList[index];
            }
            set
            {
                InnerList[index] = value;
            }
        }
    }

【问题讨论】:

    标签: c# asp.net collections


    【解决方案1】:

    只需使用List<T> 对象来创建对象的强类型集合。在您的示例中仅使用

    List<Page> listOfPages = new List<Page>()
    

    还要检查 System.Collections.Generic 命名空间中的强类型(通用)集合。

    【讨论】:

    • List 是否比我的自定义收藏“更好”?有什么好处?
    • 这和你的集合所做的一样,但唯一的区别是:你不需要为你使用的每种类型创建新的集合类型,只需在&lt;&gt;和我们中指定你的新类型免费的强类型集合 :) 你会忘记为你的类型创建强类型集合。
    • 太棒了。猜猜我不需要重新发明轮子:P
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-05
      • 2011-03-14
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 2013-07-02
      相关资源
      最近更新 更多