.net研究之对象大小比较

 
实现对象大小比较有两种方式:
1.实现System.IComparable<T>
2.专门编写一个类实现System.Collenctions.Generic.IComparer<T>


1.实现System.IComparable<T>
说明:
   int CompareTo( Object obj)
     CompareTo的实现
     1.obj 不具有与此实例相同的类型,要抛出ArgumentException异常。
     2.给实现者的说明
      对于对象 A、B 和 C,以下条件必须为真:
    A.CompareTo(A) 必须返回零。
    如果 A.CompareTo(B) 返回零,则 B.CompareTo(A) 必须返回零。
    如果 A.CompareTo(B) 返回零并且 B.CompareTo(C) 返回零,则 A.CompareTo(C) 必须返回零。
    如果 A.CompareTo(B) 返回一个非零值,则 B.CompareTo(A) 必须返回符号相反的值。
    如果 A.CompareTo(B) 返回一个不等于零的值 x,并且 B.CompareTo(C) 返回一个与 x 符号相同的值 y,
    则 A.CompareTo(C) 必须返回与 x 和 y 符号相同的值。
   
示例:
class TelPhone : System.IComparable<TelPhone>
{
    public int sortId;

    #region IComparable<TelPhone> 成员

   
    public int CompareTo(TelPhone other)
    {
        if (this.sortId == other.sortId)
            return 0;

        if (this.sortId > other.sortId)
        {
            return 1;
        }
        else
        {
            return -1;
        }
    }

    #endregion
}

2.专门编写一个类实现System.Collenctions.Generic.IComparer<T>
   说明:
   int Compare(T x,T y)
   比较两个对象并返回一个值,指示一个对象是小于、等于还是大于另一个对象。

   小于零
   x 小于 y。
 
   零
   x 等于 y。
 
   大于零
   x 大于 y。
 

   示例:
    class Car
    {
        private int sortId;

        public int SortId
        {
            get { return sortId; }
            set { sortId = value; }
        }
    }
    class CarComparer : System.Collections.Generic.IComparer<Car>
    {
        #region IComparer<Car> 成员

        public int Compare(Car x, Car y)
        {
            if (x.SortId == y.SortId)
                return 0;

            if (x.SortId > y.SortId)
            {
                return 1;
            }
            else
            {
                return -1;
            }
        }

        #endregion
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值