泛型接口的斜变与抗变_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 泛型接口的斜变与抗变

泛型接口的斜变与抗变

 2017/12/6 3:22:05  钢笔水  程序员俱乐部  我要评论(0)
  • 摘要:1.名词解释(1)协变:父类的对象用子类代替(2)抗变:子类的对象用父类代替如方法的参数是协变的,而返回值是抗变的。2.泛型接口的协变与抗变(1)协变:IDemo<outT>===》IDemo<outParentT>泛型类型T只能作为IDemo中方法或属性的返回值(2)抗变:IDemo<inParentT>===》IDemo<inT>泛型类型T只能作为IDemo中方法的参数简单的,从单词out和in即可理解:out表示泛型类型只能作为返回
  • 标签:接口 泛型

1.名词解释

(1)协变:父类的对象用子类代替

(2)抗变:子类的对象用父类代替

如方法的参数是协变的,而返回值是抗变的。

2.泛型接口的协变与抗变

(1)协变:IDemo<out T>  ===》IDemo<out  ParentT>

          泛型类型T只能作为IDemo中方法或属性的返回值

 

(2)抗变:IDemo<in ParentT>  ===》IDemo<in T>

          泛型类型T只能作为IDemo中方法的参数

简单的,从单词out和in即可理解:out表示泛型类型只能作为返回,in表示泛型类型只能作为输入

3.为什么

由T向ParentT转变是类型安全的,反之则是类型不安全的。

 

上一篇: 小米在欧洲申请Mi Pad商标被拒 因名称与iPad太像 下一篇: 没有下一篇了!
发表评论
用户名: 匿名