zoukankan      html  css  js  c++  java
  • 泛型约束

    泛型:即通过参数化类型来实现在同一份代码上操作多种数据类型。

    利用泛型也可以达到代码重用的目的。

    1.泛型类

    泛型类的定义与一般类的定义几乎一样,只是它把一些参数用泛型的类型参数来代替。

    格式:

    修饰符 class 类名<类型参数列表>

    {

    类体

    }

    2.泛型方法

    泛型方法与普通的方法区别在于使用类型参数声明方法,泛型方法也可以被重载和重写。

    例如:

    public void GetMax<T>(T t,int a)

    {

    方法体

    }

    参数的类型可以是T或其他系统的数据类型。

    3.约束

    约束是指对泛型类型参数施加限制,用于限制可以传递到该类型参数的类型种类。

    a.基类约束

    指示编译器泛型类型参数必须派生自特定基类。

    格式:修饰符 class 类名<类型参数列表> where 类型参数:基类名

    b.接口约束

    指示编译器泛型类型参数必须派生自特定接口。

    格式:修饰符 class 类名<类型参数列表> where 类型参数:接口名

    c.默认构造函数约束

    指示编译器泛型类型参数公开了默认的公共构造函数(不带任何参数的公共构造函数)。即无参构造函数是public。

    修饰符 class 类名<类型参数列表> where 类型参数 : new()

    d:引用/值类型约束

    指示翻译器泛型类型参数必须为引用类型或值类型。

    格式:修饰符 class 类名<类型参数列表> where 类型参数:struct(或class)

    其中ab都是约束了父类或父接口,传递其子类或子接口也是能满足的。

  • 相关阅读:
    二分图最大匹配的K&#246;nig定理及其证明
    HDOJ 2389 Rain on your Parade
    HDOJ 1083 Courses
    HDOJ 2063 过山车
    POJ 1469 COURSES
    UESTC 1817 Complete Building the Houses
    POJ 3464 ACM Computer Factory
    POJ 1459 Power Network
    HDOJ 1532 Drainage Ditches
    HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/8195713.html
Copyright © 2011-2022 走看看