zoukankan      html  css  js  c++  java
  • C#进阶-泛型-变体

    为什么要使用泛型(泛型可以继承的):

    1,重用代码;

    2,类型安全:编译时检查,尽早暴露问题(相对object而言);

    3,提高性能:编译时生成,避免装箱/拆箱;

    泛型的类型约束where T:

    1,struct:只能是值类型,由struct定义;

    2,class:只能是引用类型,class定义;

    3,new():必须包含一个公共的无参构造函数;

    4,person:只能是person及其子类;

    5,ISort:只能是ISort及其实现;

    可以为多个泛型参数定义多个约束,也可以为一个泛型参数定义多个不冲突的约束;

    只有接口或委托的泛型才能声明变体:

    协变(covariance)out:子类可以给父类,IEnumerable<T>,IEnumerator<T>等;

    逆变(contra variance)in:父类可以给子类,IComparer<T>,IComparable<T>等;

    如果这篇文章,对你有帮助,请点击关注,我会持续更新......
  • 相关阅读:
    学习JavaDay07
    学习JavaDay05
    学习JavaDay0402
    学习JavaDay04
    学习JavaDay03
    学习JavaDay02
    学习JavaDay01
    数据库的增删改查
    关于Spring
    关于多线程Thread的简单应用
  • 原文地址:https://www.cnblogs.com/-GoFurther/p/13741360.html
Copyright © 2011-2022 走看看