逆变与协变,知识总结

这两天看了很多逆变与协变的知识,现将所学大概总结如下:

应用对象
泛型委托,泛型接口

  概念 关键字 关注对象
协变 细节化程度高的类型(子类)赋值给细节化程度低的类型(父类)。 in 方法参数
逆变 细节化程度低的类型(父类)赋值给细节化程度高的类型(子类)。 out

方法返回值





逆变与协变的相互作用
方法参数的协变-逆变互换原则。如下代码所示,有协变能力的IFoo要求他的泛型参数IBar有逆变能力。

1 public interface IBar<in T> {}
2 
3 public interface IFoo<out T>
4 {
5     void Test(IBar<T> bar);  
6 }

意义

实现委托参数类型的隐式转换。更好的体现继承和多态的特点

参考
http://msdn.microsoft.com/zh-cn/library/ee207183.aspx
http://www.cnblogs.com/lemontea/archive/2013/02/17/2915065.html
http://www.cnblogs.com/idior/archive/2010/06/20/1761383.html

 

 

posted @ 2014-04-01 16:49  meteor688  阅读(151)  评论(0)    收藏  举报