首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

关于泛型会合中的协变和逆变

2013-03-01 
关于泛型集合中的协变和逆变!IEnumerableBaseModel s1 new ListCommodityModel()IEnumeratorBaseM

关于泛型集合中的协变和逆变!


           IEnumerable<BaseModel> s1 = new List<CommodityModel>();
           IEnumerator<BaseModel> s2 = new List<CommodityModel>();

CommodityModel是BaseModel派生类,为何第二行代码编译不通过.第一行却可以?
[解决办法]
跟什么协变和逆变没关系,因为List集成了IEnumerable接口而没有集成IEnumerator接口,所以List能转成
IEnumerable不能转成IEnumerator,跟你的类没关系
你看int型的List转,第二行转IEnumerator 也是不行的

 IEnumerable x1 = new List<int>();
 IEnumerator x2 = new List<int>();

热点排行