日期:2014-05-19  浏览次数:20770 次

有个疑问,帮忙看看,关于泛型的。。
IList <ProductInfo>   products   =   new   List <ProductInfo> ();
为什么这个语句要怎么写,不知道有什么好处,如果用泛型直接这样就行了
List <ProductInfo>   products   =   new   List <ProductInfo> ();
为什么要把变量声明为泛型接口,然后用泛型类实例他

------解决方案--------------------
就像可以用
Control btn = new Button();
基类和接口你无法隐藏起来的,不需要使用IList就你下面那行就可以了。
------解决方案--------------------
不是很懂,估计是因为设计模式里面是这样说的:面向接口的编程,而不是针对实现编程。
也有可能是编码习惯的问题,用接口的话显得更加规范些吧,因为有助于维护。
------解决方案--------------------
用接口就灵活得多,接口只关心它做什么,而不关心它是什么

用于通用性的操作,如果传入参数是接口,实际调用时,可以传入任何实现此接口的类的变量

------解决方案--------------------
假设你调用一个通用方法(),参数要求是IList <T> 类型,
而你的实际变量是List <T> 类型,就得那样写,
你如果用List <T> ,就会参数类型不匹配