为什么派生自Comparer <T>类而不是实现IComparer <T>接口的实现类?

新版

MS文档指出,最好从Comparer类派生而不是实现IComparer<T>接口的实现类

我们建议您从Comparer类派生而不是实现IComparer接口,因为Comparer类提供了IComparer.Compare方法和Default属性的显式接口实现,该属性获取对象的默认比较器。

那么,为什么要从Comparer派生以便创建自定义比较器呢?

大通奖章

主要好处是,这使您的比较器可以免费实现非通用的IComparer接口,当与旧版API互操作或希望存储不同类型的比较器集合时,该接口将非常有用。

看看这个相关的问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

T是类实现接口的泛型

来自分类Dev

如果实现该接口的类将使用List <T>,为什么要在接口定义中使用IEnumerable <T>?

来自分类Dev

为什么我们在实现派生接口的类上重新实现派生接口的父接口

来自分类Dev

为什么List <T>实现IReadOnlyList <T>接口?

来自分类Dev

基类实现基本接口,而派生/混凝土类实现扩展接口,为什么呢?

来自分类Dev

为什么要在单独的类中实现IEqualityComparer <T>

来自分类Dev

为什么Typescript类自动实现接口?

来自分类Dev

为什么List <T>实现了这么多接口?

来自分类Dev

将泛型类中的T限制为实现某些接口的类型

来自分类Dev

如何将接口实现添加到基类(List <t>)

来自分类Dev

强制派生类实现接口

来自分类Dev

我们应该扩展Comparer <T>还是实现IComparer <T>

来自分类Dev

为什么我必须在实现类而不是仅接口类上使用@RequestParam批注?

来自分类Dev

C#:我的派生类无法覆盖基类的接口方法实现,为什么?

来自分类Dev

泛型T是抽象类的实现

来自分类Dev

为什么POJO类需要实现Serializable接口?

来自分类Dev

为什么不调用实现Runnable接口的类的构造函数?

来自分类Dev

为什么不调用实现Runnable接口的类的构造函数?

来自分类Dev

为什么实现接口的类的属性不起作用?

来自分类Dev

为什么 List 类要实现 IList 接口?

来自分类Dev

为什么IList <T>实现IEnumerable <T>和ICollection <T>而ICollection <T>本身实现IEnumerable <T>

来自分类Dev

实现从另一个基类派生的 Generic BaseClass<T>

来自分类Dev

当基类实现抽象时,在派生类上指定实现接口

来自分类Dev

为什么`* mut T`实现`Unwindsafe`而`&mut T`不实现?

来自分类Dev

如何访问子类派生类中实现的接口方法?

来自分类Dev

如何创建从实现接口的基类派生的实例列表?

来自分类Dev

c#实现派生类中使用的接口变量

来自分类Dev

基本接口的SignalR Hub <T>实现支持

来自分类Dev

检查泛型T是否实现接口

Related 相关文章

  1. 1

    T是类实现接口的泛型

  2. 2

    如果实现该接口的类将使用List <T>,为什么要在接口定义中使用IEnumerable <T>?

  3. 3

    为什么我们在实现派生接口的类上重新实现派生接口的父接口

  4. 4

    为什么List <T>实现IReadOnlyList <T>接口?

  5. 5

    基类实现基本接口,而派生/混凝土类实现扩展接口,为什么呢?

  6. 6

    为什么要在单独的类中实现IEqualityComparer <T>

  7. 7

    为什么Typescript类自动实现接口?

  8. 8

    为什么List <T>实现了这么多接口?

  9. 9

    将泛型类中的T限制为实现某些接口的类型

  10. 10

    如何将接口实现添加到基类(List <t>)

  11. 11

    强制派生类实现接口

  12. 12

    我们应该扩展Comparer <T>还是实现IComparer <T>

  13. 13

    为什么我必须在实现类而不是仅接口类上使用@RequestParam批注?

  14. 14

    C#:我的派生类无法覆盖基类的接口方法实现,为什么?

  15. 15

    泛型T是抽象类的实现

  16. 16

    为什么POJO类需要实现Serializable接口?

  17. 17

    为什么不调用实现Runnable接口的类的构造函数?

  18. 18

    为什么不调用实现Runnable接口的类的构造函数?

  19. 19

    为什么实现接口的类的属性不起作用?

  20. 20

    为什么 List 类要实现 IList 接口?

  21. 21

    为什么IList <T>实现IEnumerable <T>和ICollection <T>而ICollection <T>本身实现IEnumerable <T>

  22. 22

    实现从另一个基类派生的 Generic BaseClass<T>

  23. 23

    当基类实现抽象时,在派生类上指定实现接口

  24. 24

    为什么`* mut T`实现`Unwindsafe`而`&mut T`不实现?

  25. 25

    如何访问子类派生类中实现的接口方法?

  26. 26

    如何创建从实现接口的基类派生的实例列表?

  27. 27

    c#实现派生类中使用的接口变量

  28. 28

    基本接口的SignalR Hub <T>实现支持

  29. 29

    检查泛型T是否实现接口

热门标签

归档