可能重复:
Covariance and contravariance real world example
still confused about covariance and contravariance & in/out
你能给我一个协方差和反对的描述或例子,以及为什么他们现在决定将它添加到.NET 4中?
答案 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)的子类型,则是逆变。
问题是否要求消费者处理超类型或子类型。
一个常见的例子是处理水果类的类库。
我可以给你一个苹果,你期待一个水果。 我不能给你任何你期待苹果的水果。
如果你正在制作水果图书馆。你应该期待我的果实,我应该期待你的果实。我们都不应该对可能是错误的子类型抱有期望。
因此,上述问题的答案取决于您收到或发送的内容。读取或写入参数。 水果单应该接受香蕉或苹果,但只有发送“水果”