摘要:
协变和逆变,这两个词的翻译实在很难表达出他们的真实含义。其实他们是继承和多态的衍生物,而且在.Net 1.0 和2.0中都提供了某种程度的支持,只是在.Net 4.0中支持的更加完善了。 简单说来,协变和逆变就是希望支持更多情况的隐式类型转换,使得我们的编程更加方便,而通常来说只有具备继承关系的两个对象才可以发生隐式类型转换,如Base b=new Derived(). 协变和逆变则使得更多的类型之间可以发生隐式类型转换,如通过协变以下代码可以正常工作:那么我们为什么需要这种功能呢?让我们从一个多态的例子开始:虽然FeedAnimal方法接受的参数类型为Animal ,但是当我们传入一个Tig 阅读全文