zoukankan      html  css  js  c++  java
  • 0.2.比较接口Default

    abstract class EqualityComparer:IEqualityComparer,IEqualityComparer

    0
    static volatitle EqualityComparer defaultComparer; public static EqualityComparer Default{get;} //调用CreateComparer()
    //Default属性就返回了8种comparer
    private static EqualityComparer<T> CreateComparer()
    {
        //根据不同情况返回8种默认实现的comparer        
    }
    ## 其他的额外方法
    IndexOf()
    LastIndexOf()
    
    1.GenericEqualityComparer
    2.NullableEqualityComparer
    3.ObjectEqualityComparer
    4.ByteEqualityComparer
    5.EnumEqualityComparer
    6.SByteEnumEqualityComparer
    7.ShortEnumEqualityComparer
    8.LongEnumEqualityComparer
    

    abstract class Comparer:IComparer,IComparer

    0
    public static Comparer Default{get;} //使用CreateComparer()
    CreateComparer产生4个不同的派生类,根据泛型
    
    1. ComparisonComparer<T>
    2. GenericComparer<T>
    3. NullableComparer<T>
    4. ObjectComparer<T>
    
    0

    常见的3类比较接口

    1.IComparable,IComparable 我有比较的能力,我和其他instance比

    int CompareTo(T other);
    

    2.IComparer,IComparer 我是个比较器,所以我能比较任何两个instance

    int Compare(T x,T y);
    

    3.IEqualityComparer,IEqualityComparer 强调改变了equals也要改变gethashcode

    bool Equals(T x,T y);
    int GetHashCode(T obj);
    

    IEquatable 强调是否相等

    bool Equals(T other); 
    两个对象是否相等
    

    IStructuralEquatable

    Boolean Equals(Object other,IEqualityComparer comparer);
    int GetHashCode(IQualityComparer comparer);
    

    IStructuralComparable

    Int32 CompareTo(Object other, IComparer comparer);
    这就是
  • 相关阅读:
    .NET 图片解密为BASE64
    IIS&ASP.NET 站点IP跳转到域名
    http转https实战教程iis7.5
    接口传参几种方式
    Python3 字符串
    ASP.Net Core WebApi几种版本控制对比
    Docker 部署NetCore 接口(三)
    Docker关键概念和基本命令(二)
    Windows平台下kafka环境的搭建以及简单使用
    CentOS7 安装 Docker-CE(一)
  • 原文地址:https://www.cnblogs.com/zhangrCsharp/p/7695217.html
Copyright © 2011-2022 走看看