1.前言

往往一些刚接触C#编程的初学者,对于泛型的认识就是直接跳到对泛型集合的使用上,虽然微软为我们提供了很多内置的泛型类型,但是如果我们只是片面的了解调用方式,这会导致我们对泛型盲目的使用。至于为什么要使用泛型,什么情况下定义属于自己的泛型,定义泛型又能为程序带来哪些好处。要理清这些问题,我们就必须深刻理解泛型的本质,形成泛型编程的思维方式。

接下来我将基于一个基础示例,然后通过需求不断的演化示例,从而让泛型在关键时刻脱颖而出,以便让我们能够深刻体会泛型的作用。假设.NET没有为我们提供用于存储数据的集合,而我们需要一个能够用于存储string元素的集合,基于这个情况我们自定义了一个用于存储字符串的集合类:

    class ArraryStr
    {
        public ArraryStr()
        {
            _items = new string[100]; //初始化存储元素的容量,只是为了演示故将容量定义为固定值
        }

        private string[] _items; //存储元素的数组
        private int _count;   //元素总数
        public int Count
        {
            get { return _count; }
        }

        public void Add(string item) //新增元素
        {
            _items[_count] = item;
            _count++;
        }

        public string this[int index] //索引
        {
            get { return _items[index]; }
            set { _items[index] = value;  }
        }

    } // END ArraryStr
09-09 15:16