协方差和逆差

时间:2010-08-31 02:33:00

标签: c# .net design-patterns

  

可能重复:
  Covariance and contravariance real world example
  still confused about covariance and contravariance & in/out

你能给我一个协方差和反对的描述或例子,以及为什么他们现在决定将它添加到.NET 4中?

2 个答案:

答案 0 :(得分:0)

由于没有给出答案,我只是总结了评论

stackoverflow.com/questions/245607/ - MainMa

stackoverflow.com/questions/2662369/ stackoverflow.com/questions/1163465/ stackoverflow.com/questions/3445631/ - 在Sane 56分钟前

答案 1 :(得分:0)

如果B继承自A,即A的子类型,则如果C(B)是C(A)的子类型,则C函数是协变的,如果C(A)是C(B)的子类型,则是逆变。

问题是否要求消费者处理超类型或子类型。

一个常见的例子是处理水果类的类库。

我可以给你一个苹果,你期待一个水果。 我不能给你任何你期待苹果的水果。

如果你正在制作水果图书馆。你应该期待我的果实,我应该期待你的果实。我们都不应该对可能是错误的子类型抱有期望。

因此,上述问题的答案取决于您收到或发送的内容。读取或写入参数。 水果单应该接受香蕉或苹果,但只有发送“水果”