RT
看书,作者自顾说自己的话,代码能看懂,语法很别扭,不知道为什么要这样做,不知道为什么才存在这玩意,这样做有什么好处呢?牛人能否说说自己的感悟?谢谢了

解决方案 »

  1.   

    泛型就是替你省写代码的,简单的例子就是List,列表在数据结构中描述的很清晰,有些什么操作,但item类型固定的,如果一定要做个通用的类型,就是object,但这样对值类型的装箱带来性能的损失不可忽视,为了效率,可能就需要写IntList,如果还要long的List,string的List就要一样代码写好多次类型不同,泛型就能解决这个问题,写一次代码,吧可以公共替代的类型作为一个类的参数,动态配置,这样一份List<T>就可以支撑任意类型的List了。c#的泛型是运行时决定的,所以你可以独立编写泛型类。c++的泛型是编译时决定的,多一种类型,系统就替你用模板类多生成一份代码。
      

  2.   

    具体类型,方便编码,比Object,强
      

  3.   

       什么装箱拆箱我不懂。一般我绑定数据的时候就用list《T》。我就这样用
      

  4.   

    范型的意义在于免去了类型之间互相转换的系统开销,和同类方法的重载,比如,Add方法你要重载两个方法(int和double)或者更多方法,用范型只用写一个Add方法就可以完成int,double,float......等等的相加,再如,集合的操作,没有往往是弱类型(object),而用范型可以直接是强类型,无需转换之间的开销,节省了资源,这个比较详细:
    http://hi.baidu.com/z_08/blog/item/6f5b114ef89c5ecad1c86ab2.html
      

  5.   

    额,假设说,湖南电视台说要搞一个BT转场PK大赛,现在海选目前准备报名的有 :“刘著”,“李宇春”,“芙蓉”,“小月月”,“张学友”,“刘德华”现在报名现场工作人员,准备接受报名IEnumerable<BT>  报名处理(list<报名人员> _list)
    {
       foreeach (人 演员 in _list)
      {
         if(演员 is BT) //额,刘著,李宇春,芙蓉,小月月过关他们继承IBT接口,张学友,刘德华pass他们只实现了演员类而没实现IBT接口
         yield return 演员
      }
    }