如题 

解决方案 »

  1.   

    C#的泛型基本就是当年泛型提出的时候的本意,如果有缺点,也是泛型的缺点而不能算是c#泛型的缺点了.
    相对于c++的模版,C#的泛型说他毫无缺点也不过分.
    c#泛型完成了真正的泛型定义封装,使泛型本身也可以成为一个黑盒模块,不会像c++那样出现非常难以理解的实例化错误,使用起来其实还是要把模版库学透,并且经常看到菜鸟程序员的菜鸟用法,造成潜在的程序错误.
      

  2.   

    .NET的泛型唯一的缺点是...它太容易学又太难理解,以至于绝大多数新手直接把泛型集合和泛型混为一谈,把避免装拆箱当做泛型的唯一目的...反而将泛型的本质都抛弃掉了...
      

  3.   

    C#中的泛型的缺点,就是封装的太好了,新手难以理解其本质自定义泛型类或泛型方法时,经常使用不当或设计不当为OO设计增加了新的复杂度
      

  4.   

    说了一堆,把我弄的也不知道泛型的真正目地是什么了?不就是类型参数化吗?以节省Boxing、Unboxing?什么什么晕了
      

  5.   

    C#的泛型 对比 C++的模板 给个例子
    public class A<T>{
        public void F1(T _o)
        {
             _o.init();//此处对于C#非法 编译时不知道T是否支持.init 但对于C#这种类似解释的语言原理应该是做得到的 为什么不支持?
        }
    }C++模板
    template class A<class T>{
    public:
         void F1(T& _o)
         {
             _o.init();//合理 如果T不支持init,只需A<T>不调用到F1就行 利用这种原理甚至可以在编译时查出程序的逻辑错误
         }
    }