Страница 293 из 502
<b> return true;</b>
<b> return false;</b>
<b> }</b>
<b> // Требуется обобщенный интерфейс IComparable<T>. В данном методе</b>
<b> // предполагается, что массив отсортирован. Он возвращает логическое</b>
<b> // значение true, если значение параметра what оказывается среди элементов</b>
<b> // массива, передаваемых параметру obs.</b>
<b> public static bool InRange<T>(T what, T[] obs) where T : IComparable<T> {</b>
<b> if (what.CompareTo(obs[0]) < 0 ||</b>
<b> what.CompareTo(obs[obs.Length - 1]) > 0)</b>
<b> return false;</b>
<b> return true;</b>
<b> }</b>
<b> // Продемонстрировать операции сравнения,</b>
<b> static void Main() {</b>
<b> // Применить метод Isln() к данным типа int.</b>
<b> int[] nums = { 1, 2, 3, 4, 5 };</b>
<b> if (IsIn(2, nums))</b>
<b> Console.WriteLine("Найдено значение 2.");</b>
<b> if (IsIn(99, nums))</b>
<b> Console.WriteLine("He подлежит выводу.");</b>
<b> // Применить метод Isln() к объектам класса MyClass.</b>
<b> MyClass[] mcs = { new MyClass(1), new MyClass(2),</b>
<b> new MyClass(3), new MyClass(4) };</b>
<b> if (IsIn(new MyClass(3), mcs))</b>
<b> Console.WriteLine("Найден объект MyClass(3).");</b>
<b> if (IsIn(new MyClass(99), mcs))</b>
<b> Console.WriteLine("He подлежит выводу.");</b>
<b> // Применить метод InRange() к данным типа int.</b>
<b> if (InRange(2, nums))</b>
<b> Console.WriteLine("Значение 2 находится в границах массива nums.");</b>
<b> if (InRange(1, nums))</b>
<b> Console.WriteLine("Значение 1 находится в границах массива nums.");</b>
<b> if (InRange(5, nums))</b>
<b> Console.WriteLine("Значение 5 находится в границах массива nums.");</b>
<b> if (!InRange(0, nums))</b>
<b> Console.WriteLine("Значение 0 HE находится в границах массива nums.");</b>
<b> if (!InRange(6, nums))</b>
<b> Console.WriteLine("Значение 6 HE находится в границах массива nums.");</b>
<b> // Применить метод InRange() к объектам класса MyClass.</b>
<b> if (InRange(new MyClass(2), mcs))</b>
<b> Console.WriteLine("Объект MyClass(2) находится в границах массива nums.");</b>
<b> if (InRange(new MyClass(1), mcs))</b>
<b> Console.WriteLine("Объект MyClass(1) находится " +</b>
<b> "в границах массива nums.");</b>
<b> if (InRange(new MyClass(4), mcs))</b>
<b> Console.WriteLine("Объект MyClass(4) находится " +</b>
<b> "в границах массива nums.");</b>
<b> if (!InRange(new MyClass(0), mcs))</b>
<b> Console.WriteLine("Объект MyClass(0) HE " +</b>
<b> "находится в границах массива nums.");</b>
<b> if (!InRange(new MyClass(5), mcs))</b>
<b> Console.WriteLine("Объект MyClass(5) HE " +</b>
<b> "находится в границах массива nums.");</b>
<b> }</b>
<b>}</b>
Выполнение этой программы приводит к следующему результату.
<b>Найдено значение 2.</b>
<b>Найден объект MyClass (3) .</b>
<b>Значение 2 находится в границах массива nums.</b>
<b>Значение 1 находится в границах массива nums.</b>
<b>Значение 5 находится в границах массива nums.</b>
<b>Значение 0 НЕ находится в границах массива nums</b>
<b>Значение 6 НЕ находится в границах массива nums</b>
<b>Объект MyClass(2) находится в границах массива nums.</b>
<b>Объект MyClass(1) находится в границах массива nums.</b>
<b>Объект MyClass(4) находится в границах массива nums.</b>