相关疑难解决方法(0)

关于C#协方差的问题

在下面的代码中:

interface I1 { }
class CI1: I1 { }

List<CI1> listOfCI1 = new List<CI1>();

IEnumerable<I1> enumerableOfI1 = listOfCI1; //this works

IList<I1> listofI1 = listOfCI1; //this does not
Run Code Online (Sandbox Code Playgroud)

我可以将"listOfCI1"分配给IEnumerable<I1>(由于协方差)

但为什么我无法将其分配给IList<I1>?就此而言,我甚至无法做到以下几点:

List<I1> listOfI12 = listOfCI1;
Run Code Online (Sandbox Code Playgroud)

协方差不应该允许我将派生类型分配给基类型吗?

c# covariance c#-4.0

15
推荐指数
2
解决办法
907
查看次数

标签 统计

c# ×1

c#-4.0 ×1

covariance ×1