// 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>(); } } 泛型概述 1. 类型可以最大限度地重用代码、保护类型的安全以及提高性能。 2. 创建集合类。 3. NET Framework 类库在 System.Collections.Generic 命名空间中包含几个新的泛型集合类。应尽可能地使用这些类来代替普通的类,如 System.Collections 命名空间中的 ArrayList。 4. 您可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。 5. 可以对泛型类进行约束以访问特定数据类型的方法。 6. 关于泛型数据类型中使用的类型的信息可在运行时通过使用反射获取。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Using GetType to obtain type information: int i = 42; System.Type type = i.GetType(); System.Console.WriteLine(type); 输出为: System.Int32 此示例使用反射获取已加载的程序集的完整名称: // Using Reflection to get information from an Assembly: System.Reflection.Assembly o = System.Reflection.Assembly.Load("mscorlib.dll"); System.Console.WriteLine(o.GetName()); 输出为: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
反射在下列情况下很有用: 1. 当需要访问程序元数据中的属性时。请参见主题使用反射访问属性。 2. 检查和实例化程序集中的类型。 3. 在运行时构建新类型。使用 System.Reflection.Emit 中的类。 4. 执行后期绑定,访问在运行时创建的类型的方法。请参见主题动态加载和使用类型。 |