Объектно-ориентированное программирование на С#. Андрианова А.А - 128 стр.

UptoLike

128
if (left < j)
Sort(comparer, items, left, j);
// вызов метода сортировки элементов,
// расположенных справа от center
if (right > i)
Sort(comparer, items, i, right);
}
// другие методы сортировки
. . .
}
При описании обобщенного метода указывает параметр-тип Т. Первым
параметром является объект, тип которого раскрывает обобщенный
интерфейс IMyComparer, предназначенный для сравнения объектов (его
код представлен ранее), второй параметр метода сортируемый массив
элементов обобщенного типа:
public static void Sort<T>(IMyComparer<T> comparer,
T[] items, int left, int right)
{
. . .
}
Вызов обобщенного метода класса осуществляется с указанием
конкретного типа элементов массива. Например,
int[] a = {1, 2, 10, 4, -5, 0};
// создание объекта закрытого типа на основе
// обобщенного класса MyComparer и типа int
IMyComparer<int> intComparer = new MyComparer<int>();
// вызов обобщенного статического метода
// класса Sortirovschik
Sorter.Sort<int>(intComparer,a,0,a.Length-1);
7.5. Обобщенные делегаты
Поскольку делегаты являются классами, они также могут быть
обобщенными. В этом случае можно создавать обобщенные алгоритмы,
логику которых можно изменять передаваемыми в качестве параметров
делегатами.
Определение обобщенного делегата имеет следующий вид:
             if (left < j)
                Sort(comparer, items, left, j);
            // вызов метода сортировки элементов,
            // расположенных справа от center
             if (right > i)
                Sort(comparer, items, i, right);
          }
          // другие методы сортировки
            . .     .
      }

   При описании обобщенного метода указывает параметр-тип Т. Первым
параметром является объект, тип которого раскрывает обобщенный
интерфейс IMyComparer, предназначенный для сравнения объектов (его
код представлен ранее), второй параметр метода – сортируемый массив
элементов обобщенного типа:
      public static void Sort(IMyComparer comparer,
                                  T[] items, int left, int right)
      {
        .    .    .
      }

     Вызов обобщенного метода класса осуществляется с указанием
конкретного типа элементов массива. Например,

      int[] a = {1, 2, 10, 4, -5, 0};

      // создание объекта закрытого типа на основе
      // обобщенного класса MyComparer и типа int
      IMyComparer intComparer = new MyComparer();

      // вызов обобщенного статического метода
      // класса Sortirovschik
      Sorter.Sort(intComparer,a,0,a.Length-1);




                                   7.5. Обобщенные делегаты

     Поскольку делегаты являются классами, они также могут быть
обобщенными. В этом случае можно создавать обобщенные алгоритмы,
логику которых можно изменять передаваемыми в качестве параметров
делегатами.
     Определение обобщенного делегата имеет следующий вид:

128