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);
    这就是
  • 相关阅读:
    ios 开发证书制作
    iOS UILable 高度自适
    asp 中创建日志打印文件夹
    ios iphone、ipad启动画面尺寸
    ios 更改UITableview中Section的字体颜色
    Azure Blob 存储简介
    java追加文件
    java读取文件
    DNS原理及其解析过程
    单点登录原理与简单实现
  • 原文地址:https://www.cnblogs.com/zhangrCsharp/p/7695217.html
Copyright © 2011-2022 走看看