1. IList 接⼝与List的区别是什么?
IList 泛型接⼝是 Icollection 接⼝的⼦代,并且是所有⾮泛型列表的基接⼝。 Ilist 实现有三种类别:只 读、固定⼤⼩、可变⼤⼩。 ⽆法修改只读 Ilist。 固定⼤⼩的 Ilist 不允许添加或移除元素,但允许修改现 有元素。 可变⼤⼩的 Ilist 允许添加、移除和修改元素。
IList 是个接⼝,定义了⼀些操作⽅法这些⽅法要你⾃⼰去实现,当你只想使⽤接⼝的⽅法时,这种⽅式⽐较 好.他不获取实现这个接⼝的类的其他⽅法和字段,有效的节省空间.
List 是个类型 已经实现了IList 定义的那些⽅法。
List List11 =new List ();
是想创建⼀个List,⽽且需要使⽤到List的功能,进⾏相关操作。 ⽽
IList IList11 =new List ();
只是想创建⼀个基于接⼝IList的对象的实例,只是这个接⼝是由List实现的。所以它只是希望使⽤到IList 接⼝规定的功能⽽已。
2.泛型的主要约束和次要约束是什么?
当⼀个泛型参数没有任何约束时,它可以进⾏的操作和运算是⾮常有限的,因为不能对实参进⾏任何类型 上的保证,这时候就需要⽤到泛型约束。泛型的约束分为:主要约束和次要约束,它们都使实参必须满⾜ ⼀定的规范,