public static void Sort(int [][] arrForSort, ICustomCompare compareType)
        {
            #region Exceptions
            if (compareType == null)
            {
                throw new NullReferenceException("Неверно задан тип сортировки");
            }
            if (arrForSort == null)
            {
                throw new NullReferenceException("Сортируемый массив не инициализирован");
            }

            foreach (int[] a in arrForSort)
            {
                if (a == null)
                {
                    throw new NullReferenceException("Одна или более строк массива ссылается на null");;
                }
            }
            #endregion
            for (int i = 0; i < arrForSort.Length - 1; i++)
            {
                for (int j = 0; j < arrForSort.Length - 1; j++)
                {
                    if (0 < compareType.CustomCompare(arrForSort[j], arrForSort[j + 1]))
                    {
                        int[] temp = arrForSort[j];
                        arrForSort[j]     = arrForSort[j + 1];
                        arrForSort[j + 1] = temp;
                    }
                }
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            // 创建两个Person对象
            Person p1 = new Person();

            p1.Age = 18;
            Person p2 = new Person();

            p2.Age = 19;
            // 调用接口中方法把p1与p2比较
            ICustomCompare iCustomCompare = (ICustomCompare)p1;

            if (iCustomCompare.CompareTo(p2) > 0)
            {
                Console.WriteLine("p1比p2大");
            }
            else if (iCustomCompare.CompareTo(p2) < 0)
            {
                Console.WriteLine("p1比p2小");
            }
            else
            {
                Console.WriteLine("p1和p2一样大");
            }
            Console.Read();
        }
 public static void Sort(int [][] arrForSort, ICustomCompare compareType)
 {
     #region Exceptions
     if (compareType == null)
     {
         throw new NullReferenceException("Неверно задан тип сортировки");
     }
     if (arrForSort == null)
     {
         throw new NullReferenceException("Сортируемый массив не инициализирован");
     }
     
     foreach (int[] a in arrForSort)
         if (a == null)
         {
             throw new NullReferenceException("Одна или более строк массива ссылается на null"); ;
         }
     #endregion
     for (int i=0;i<arrForSort.Length-1;i++)
         for (int j = 0; j < arrForSort.Length - 1; j++)
         if (0<compareType.CustomCompare(arrForSort[j],arrForSort[j+1]))
         {
             int[] temp = arrForSort[j];
             arrForSort[j] = arrForSort[j + 1];
             arrForSort[j + 1] = temp;
         }
 }
        public static void Sort(int [][] arrForSort, object compareType)
        {
            ICustomCompare comType = compareType as ICustomCompare;

            if (comType == null)
            {
                throw new NullReferenceException("Неверно задан тип сортировки");
            }
            Sort(arrForSort, comType);
        }