zoukankan      html  css  js  c++  java
  • 接口的协变与抗变

    协变和抗变指对参数和返回值的类型进行转换。

    如果泛型类型用out关键字标注,泛型接口就是协变的。 这也意味着返回类型只能是T。接口Index与类型T是协变的,并从一个只读索引器中返回这个类型;

    public interface IIndex<out T>
    {
        T thisIint index{get; }
        int Count {get;} 
    }

    如果泛型类型用in关键字标注,泛型接口就是抗变的,接口只能把泛型类型T用作其方法的输入。

    public interface IDisplay<in T>
    {
    
    id show(T item);
    
    }

    如果对接口Iindex使用了制度索引器,就把泛型类型T传递给方法,并从方法中检索这个类型,这不能通过协变来实现--泛型类型必须定义为不变的。不适用out和in标注,就可以把类型定义为不变的。

    【版权所有@ithuo】 【博客地址 http://www.cnblogs.com/ithuo】 可以转载,但请注明出处并保持博客超链接,有不正确的地方请不吝赐教,谢谢大家的帮助与支持!
  • 相关阅读:
    CSS深入之第四天
    CSS之第三天总结
    第二天对CSS的学习
    开始走进CSS世界
    Hbuilder实用技巧
    项目总结
    CSS3的chapter6
    CSS3的chapter5
    CSS3的chapter4
    CSS3的chapter3
  • 原文地址:https://www.cnblogs.com/ithuo/p/4694775.html
Copyright © 2011-2022 走看看