相关疑难解决方法(0)

仍然对协方差和逆变与输入/输出感到困惑

好吧,我在stackoverflow上读了一下这个主题,看了这个&这个,但仍然有点混淆co/contra-variance.

这里开始

协方差允许在API中替换"更大"(更不具体)类型,其中原始类型仅用于"输出"位置(例如,作为返回值).逆变量允许在API中替换"较小"(更具体)类型,其中原始类型仅用于"输入"位置.

我知道它与类型安全有关.

关于这in/out件事.我可以说in当我需要写它时,我会使用它,out当它只读它时.并且in意味着反方差,out协方差.但从上面的解释......

例如,a List<Banana>不能被视为List<Fruit>因为 list.Add(new Apple())对List有效但不适用于List<Banana>.

所以不应该是,如果我要使用in/我要写入对象,它必须更大更通用.

我知道这个问题已经被问到但仍然很困惑.

c# covariance

45
推荐指数
6
解决办法
1万
查看次数

标签 统计

c# ×1

covariance ×1