请高手指点下!!谢谢!

解决方案 »

  1.   

    可以写一个通用的与类型无关的算法吧我想...这就是好处定义一个通用的类型,等到调用的时候还决定具体类型例如:
    class A<T>{
     T Tp{get;set;}//C#3.0
    }...
    A<int> a;
    a.Tp=30A<string> a2;
    a2.Tp="xp"
    string x=a2.Tp;...
      

  2.   

    泛型.这样说明吧.ArrayList list = new ArrayList();
    这是一个集合.这里我们定义两个不同类型的变量
    String Name = "123";
    Int64 Score = 100;list.Add(Name); -- 保存进入String Name 变量
    list.Add(Score);  -- 保存进入 Int64 Score 变量注意这里所有类型的都可以往里放现在我们把变量取出来 放入另外一个变量中.
    String sName = list[0].ToString();
    Int64 xScore = (int)list[1];这就取出来了两个变量, 我们注意到这里取出两个变量都需要转换类型, 因为保存到集合里都是Object类型的.如果换作泛型List<String> list = new List<String>();    -- 这里定义了一个可以存放String 类型的泛型我们在存数据的时候list.Add(Name)  -- 存入String 类型的数据. 可以执行.
    list.Add(Score)  -- 存入 Int64 类型的数据.  注意,这里编译器会报错.通过添加数据我们发现, 泛型不能添加它所制定类型意外的数据类型. 
    也就是说在一定程度上避免了数据混乱. 但是有利也有弊.下面我们来取出数据.String sName = list[0];   -- 和集合不同, 虽然它也是object 类型, 但是取出时不用拆箱. 也就是不用转换类型. 
    通过以上实例说明.
    集合和泛型都可以存入不限量的数据.
    但是集合可以存入所有类型的数据,泛型只可以存入于之对应的程序.
    集合取出数据需要拆箱,而泛型不需要.泛型作为微软大力推荐的一个新技术, 其实是保证了我们使用当中可能造成的数据混乱的出错率.
    其次泛型还是和HashTable类似的 Dictionary<K,V> 也是这样的区别..
    回答完毕. 
      

  3.   

    .net 2.0的generic class有如下优点
    1. performance: 主要针对值类型,.net1.1中,将值类型放入collection需要boxing 和unboxing,有一定的性能消耗
    2. Type Safety: .net1.1的collection只接受object类型的参数,用户有可能放入不同类型的实例,读出时必须cast成正确的引用,否则产生异常。
    3. Binary Code Reuse:不想C++ templates。net2.0中的generic不需要访问源代码。也就你可以使用一个assembly中的generic class.
    4. Code Bloat:我们都知道generic class会造成代码膨胀,因为需要为每种使用的类型生成一份IL Code,以支持这种类型。但是.net让所有引用类型的参数共享一份IL code,因为引用类型只是一个内存地址,只占用4 bytes(在32bit系统上)good luck
      

  4.   

    1.泛型避免了装箱和拆箱操作,增强了性能.主要是ArrayList和List<T>的比较,参见2楼.
    2.提高了代码通用性.在某些地方使用泛型可以使代码极大地简化.我有一个贴子也是涉及到了这方面的问题,可以探讨一下:http://topic.csdn.net/u/20071202/17/1f68c9b5-817b-49c8-8190-234672f174b8.html
      

  5.   

    2楼说的很好.在项目中,我常使用它作为数据结构,当作数据的表使用如
    用户对象
    class user{
    int    userid
    string username
    string password
    string userrolepublic user(){}
    }
    List<user>  就是存在内存中的表你想做什么,很方便,ORM类似的思想
      

  6.   

    微软视频 C#2.0特性 一讲中有一篇专门讲泛型的,非常有用,同时也非常复杂。可以解决许多结构变化不能解决的问题。不要以为用List<>代替ArrayList,Directory<>代替hashtable就算是会用泛型了。