zoukankan      html  css  js  c++  java
  • 泛型接口 (二)

    前面讲了泛型接口的好处,现在讨论一下接口中的泛型类型的参数:

    首先:我们可以把一个泛型类型的参数约束为多个接口:

    下面是个例子:

    Code

    实际上,这样做好处很多,比喻说,在定义一个方法的参数时,参数的类型指出传递的实参必须是该参数的类型,或者从其派生的类型,如果参数类型是接口,这就表明实参可以是任何一类类型,只要该类实现了这个接口。使用多个接口约束,实际上是让方法指出传递的实参必须实现多个接口。事实上,如果我们将T约束为一个类和两个接口,那就表示传入的实参类型必须是指定基类(或其派生类),而且它还必须实现两个接口。这种灵活性,允许方法实际指定调用方法能传递什么,如果调用方法不满足这些约束,会产生编译错误。

    其次,我们对接口有了约束,在传递值类型是,减少装箱操作。实际上,对于接口约束,C#编译器会生成特定的IL指令,这些指令将导致直接在值类型上调用接口方法,不对其进行装箱。

  • 相关阅读:
    HDU 4666 Hyperspace【最远曼哈顿距离+优先队列】
    Set集合容器
    堆排序实现
    手机网站调试神器之chrome控制台
    CC Sereja and Ballons (主席树)
    Multiset多重集合容器
    ZOJ 3626 Treasure Hunt I
    hdu 2072
    poj 3498 (最大流,枚举汇点)
    排序算法--冒泡排序
  • 原文地址:https://www.cnblogs.com/Rufy_Lu/p/1397843.html
Copyright © 2011-2022 走看看