解决方案 »

  1.   

    泛型(C# 编程指南)泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个新功能。泛型将类型参数的概念引入 .NET Framework,类型参数使得设计如下类和方法成为可能:这些类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候。例如,通过使用泛型类型参数 T,您可以编写其他客户端代码能够使用的单个类,而不致引入运行时强制转换或装箱操作的成本或风险,如下所示:C# 复制代码 
    // Declare the generic class
    public class GenericList<T>
    {
        void Add(T input) { }
    }
    class TestGenericList
    {
        private class ExampleClass { }
        static void Main()
        {
            // Declare a list of type int
            GenericList<int> list1 = new GenericList<int>();        // Declare a list of type string
            GenericList<string> list2 = new GenericList<string>();        // Declare a list of type ExampleClass
            GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
        }
    }
    泛型概述
    使用泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能。泛型最常见的用途是创建集合类。.NET Framework 类库在 System.Collections.Generic 命名空间中包含几个新的泛型集合类。应尽可能地使用这些类来代替普通的类,如 System.Collections 命名空间中的 ArrayList。您可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。可以对泛型类进行约束以访问特定数据类型的方法。关于泛型数据类型中使用的类型的信息可在运行时通过反射获取。相关章节
    更多信息:泛型介绍(C# 编程指南) 泛型的优点(C# 编程指南) 泛型类型参数(C# 编程指南) 类型参数的约束(C# 编程指南) 泛型类(C# 编程指南) 泛型接口(C# 编程指南) 泛型方法(C# 编程指南) 泛型委托(C# 编程指南) 泛型代码中的默认关键字(C# 编程指南) C++ 模板和 C# 泛型之间的区别(C# 编程指南) 泛型和反射(C# 编程指南) 运行库中的泛型(C# 编程指南) .NET Framework 类库中的泛型(C# 编程指南) “泛型”示例 (C#) C# 语言规范
    有关更多信息,请参见 C# 语言规范中的以下各章节:20 泛型请参见
    参考
    数据类型(C# 编程指南)
    <typeparam>(C# 编程指南)
    <typeparamref>(C# 编程指南)
    System.Collections.Generic概念
    C# 编程指南
      

  2.   

    泛型的基本优点在于好用,数组长度是动态的;安全,指定了T的类型;减少了开销,避免了以前ArrayList或Hashtable中将object类和具体类之间相互转换所带来的开销。 
    泛型提供了一种很好的复制手段,且提高了扩展性
    泛型会产生更高的代码重用,更好的性能,强类型检查和易读的代码
    参考