C#的泛型设计的非常的巧妙,但是也有一些存在的不足之处。
在面向对象开发中我们可以用子类去New基类,这是没有问题的,但是对于泛型来说是不可以的,可以看到代码第一行是报错的。泛型不支持可变性,它们是不变体,这是为了类型安全着想
但是我们可以通过其它方法来实现可变性。最简单的使用泛型接口,和编写輔助类。在4.0中有了其它的解决方法
我们想要对泛型实参进行算术运算,但是并不是所有的类型都可以进行算术运行的。也没有类似于 + - / *这种操作符的约束。我们可以使用表达式树和动态特性解决此问题
这很直观 ,上面所说的都无法使用泛型,我们不可以
Public T Property<T>{get;set;}
当然这个是无解的。因为至少我们开发的时候不会有这样的需求
来源: http://www.cnblogs.com/LiangSW/p/7168280.html