IList和List定义的区别

通常我们会见到泛型的使用。这里以以下实际例子进行分析,希望能够起到抛砖引玉的作用:
【例子】
IList<ColumnInfo> Column1=new List<ColumnInfo>();
List<ColumnInfo> Column2=new List<ColumnInfo>();
有何区别?是否都可以实现相同功能?

千万要注意:等式的右边是List<ColumnInfo>,而不是 IList<Users>,

如果在List前面加一个I, 就会出现错误:抽象类或接口无法创建实例

来自网友的见解:
这两行代码,从操作上来看,实际上都是创建了一个List<Class1>对象的实例,也就是说,他们的操作没有区别。只是用于保存这个操作的返回值变量类型不一样而已。
那么,我们可以这么理解,这两行代码的目的不一样。
List <Class1> List11 =new List <Class1>();
是想创建一个List<Class1>,而且需要使用到List<T>的功能,进行相关操作。
而IList <Class1> IList11 =new List <Class1>();
只是想创建一个基于接口IList<Class1>的对象的实例,只是这个接口是由List<T>实现的。所以它只是希望使用到IList<T>接口规定的功能而已。
【1】第一种:IList<Student> Column1=new List<ColumnInfo>()只是想创建一个基于接口IList<Student> 对象的实例,只是这个接口是由List类实现的。所以它只是希望使用到IList 接口规定的功能而已
【2】第二种:List<Student> Column2=new List<ColumnInfo>()是想创建一个基于接口List<Student>对象的实例 ,而且需要使用到List类的全部功能,进行相关操作。 
使用情况:看情况使用,如果只是简单的数据绑定和显示第一种足够。如果要进行排序等复杂的功能,就得用第二种。效率当然是第一种高了,但功能少,第二种效率差那么一点,但功能多;既然Column1实现了IList接口,那么就可以使用IList接口中规定的功能。
当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间.
【转载博客园】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值