IList是一个界面。我刚开始学习泛型。我知道接口是一个类实现的契约,它承诺使用它的方法。所以我从未想过使用类似值的类型:
有人可以在使用类型:
这样的界面时向我解释这是什么以及如何考虑它的用法IList<Writer> someName;
我在这里创建了IList接口的通用类型。但界面不是一个类,所以我应该怎么想象它的角色呢?
或者我误解了什么?
答案 0 :(得分:0)
如果成员/变量被声明为接口,则可以使用任何实现所述合同的类来实例化它。例如,您可以使用someName
实例化List<Writer>()
,但不能使用new IList<Writer>()
实例化。
IList<Writer> someName = new List<Writer>();
// someName can access any member of IList, but not specific members of List
答案 1 :(得分:0)
IList<Writer> someName;
将保留对实现IList<T>
接口的任何类实例的引用,并将Writer
指定为类型参数。
答案 2 :(得分:0)
// Returning from list
List<Writer> myWriters = new List<Writer>();
myWriters.Add(new Writer("Andy", "FL"));
myWriters.Add(new Writer("Mary", "FL"));
myWriters.Add(new Writer("Ken", "CA"));
myWriters.Add(new Writer("Robert", "WA"));
myWriters.Add(new Writer("Brian", "CA"));
IList<Writer> roWriters;
roWriters = myWriters.AsReadOnly();
我可以这样说;以上使用IList允许myWriters使用.AsReadOnly();方法?否则就不可能了? .AsReadOnly();是一个IList no List本身的方法吗?