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

菜鸟在程序理解上的疑惑,各位大哥大姐大嫂大大们帮帮忙呗
ArrayList al = new ArrayList();
            al.Add("b");            
            al.Add("a");
            al.Add("c");
            al.Add("B");
            al.Add("A");
            al.Add("C");
            al.Sort();
            for(int i=0;i<al.Count;i++)
               Console.WriteLine(al[i]);
            al.Sort(new myComparer1());

public class myComparer1 : IComparer
    {
        int IComparer.Compare(Object x, Object y)
        {
            return ((new CaseInsensitiveComparer()).Compare(y, x));
        }
    }

问题:Compare(Object x, Object y)比较X,Y后返回的是什么值,CaseInsensitiveComparer()).Compare(y, x)比较X,Y返回的是什么值,为什么这句是Compare(y, x),上句Compare(Object x, Object y),就是说一句y参数在前,一句Y参数在后,这起到什么作用啊??

------解决方案--------------------
x<y,返回-1
x=y,返回0
x>y,返回1


return ((new CaseInsensitiveComparer()).Compare(y, x));里x和y写反表示是此比较用于降序排练