1. 首页
  2. 编程语言
  3. C#
  4. 详解.NET 4.0中的泛型协变(covariant)和反变(contravariant)

详解.NET 4.0中的泛型协变(covariant)和反变(contravariant)

上传者: 2021-08-13 02:47:10上传 PDF文件 104.77 KB 热度 6次

许多人对其了解可能仅限于增加的in/out关键字,而对其诸多特性有所不知。数组其实就是一种和具体类型之间发生绑定的类型。假设有这样两个类型:TSub是TParent的子类,显然TSub型引用是可以安全转换为TParent型引用的。为了使用方便,在.NET Framework 4.0里这些接口将重新声明为允许协变或反变的版本。当我们调用这个协变后方法时,将会传入一个IFoo作为参数。这里对IFoo的要求是它能够反变成IFoo!这就是方法返回值的协变-反变一致原则。经过本文的讲解,大家应该已经初步了解的协变和反变的含义,能够分清协变、反变的过程。最后我们还套了论的协变、反变与函数参数、返回值的相互作用原理,以及由此产生的奇妙写法。

下载地址
用户评论