日期:2014-05-17  浏览次数:21056 次

关于排序器的问题,大哥大嫂大姐,大妹子们,帮小弟看看呗,亲,求您了
public class myIComparer : IComparer
    {
        int IComparer.Compare(object x, object y)
        {
            return ((new CaseInsensitiveComparer()).Compare(y, x));
        }
    }

问题1:为什么int IComparer.Compare(object x, object y)这句前面要加 int??

问题2:return ((new CaseInsensitiveComparer()).Compare(y, x));这句和int IComparer.Compare(object x, object y)多是比较两个数字,返回大于或小于等于的值。那能把这句改成int IComparer.Compare(object x, object y)吗??反正两句多是比较数值大小,可是我试过不行,为什么啊??

------解决方案--------------------
问题1:为什么int IComparer.Compare(object x, object y)这句前面要加 int??
返回值啊。定义函数都要写。
问题2:return ((new CaseInsensitiveComparer()).Compare(y, x));这句和int IComparer.Compare(object x, object y)多是比较两个数字,返回大于或小于等于的值。那能把这句改成int IComparer.Compare(object x, object y)吗??反正两句多是比较数值大小,可是我试过不行,为什么啊??
CaseInsensitiveComparer从字面上看是区分大小写的比较器,应该比较字符串的吧。
------解决方案--------------------
1、你不是return了吗,肯定要有返回值类型啊,int就是啊
2、按F12,看看Compare的定义,不就知道为什么不能用Compare(object x, object y)