网上说Ilist <> 本身只是一个泛型接口, 既然是接口当然不能实例化,只能用如下方法
IList <Class1> IList11 =new List <Class1>();
但是为什么要这么用呢,为什么不直接用List:
List <Class1> List11 =new List <Class1>();

第一种用法有什么好处,请高手指教。

 

很简单的一个描述一下,试试看你能不能接受。

IList <Class1> IList11 =new List <Class1>();
List <Class1> List11 =new List <Class1>();

这两行代码,从操作上来看,实际上都是创建了一个List<Class1>对象的实例,也就是说,他们的操作没有区别。

只是用于保存这个操作的返回值变量类型不一样而已。

那么,我们可以这么理解,这两行代码的目的不一样。
List <Class1> List11 =new List <Class1>();
是想创建一个List<Class1>,而且需要使用到List<T>的功能,进行相关操作。

IList <Class1> IList11 =new List <Class1>();
只是想创建一个基于接口IList<Class1>的对象的实例,只是这个接口是由List<T>实现的。所以它只是希望使用到IList<T>接口规定的功能而已。