C#中的协方差和协方差的实际目的是什么?

问题描述

我刚刚了解了“逆变”和“协变”的含义。尽管互联网上有很多资源可以解释这两个术语的含义,但只有少数资源简要地描述了这两个术语的含义。因此,我很难理解何时使用协变和协变接口和委托。我也不明白为什么System dll中的某些接口是协变和逆变的(例如,这是我的问题主要针对的),例如:

IEnumerable<object> str = new List<string>();

为什么应该这样做而不是:

IEnumerable<object> objs = new List<object>():

并且,如果我们假设有一个Obj方法带有一个object类型的参数,那么为什么Action<string> del1委托能够引用该方法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)