Добавить в цитаты Настройки чтения

Страница 293 из 502

<b>        return true;</b>

<b>    return false;</b>

<b>  }</b>

<b>  // Требуется обобщенный интерфейс IComparable&lt;T&gt;. В данном методе</b>

<b>  // предполагается, что массив отсортирован. Он возвращает логическое</b>

<b>  // значение true, если значение параметра what оказывается среди элементов</b>

<b>  // массива, передаваемых параметру obs.</b>

<b>  public static bool InRange&lt;T&gt;(T what, T[] obs) where T : IComparable&lt;T&gt; {</b>

<b>    if (what.CompareTo(obs[0]) &lt; 0 ||</b>

<b>          what.CompareTo(obs[obs.Length - 1]) &gt; 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(&quot;Найдено значение 2.&quot;);</b>

<b>    if (IsIn(99, nums))</b>

<b>      Console.WriteLine(&quot;He подлежит выводу.&quot;);</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(&quot;Найден объект MyClass(3).&quot;);</b>

<b>    if (IsIn(new MyClass(99), mcs))</b>

<b>      Console.WriteLine(&quot;He подлежит выводу.&quot;);</b>

<b>    // Применить метод InRange() к данным типа int.</b>

<b>    if (InRange(2, nums))</b>

<b>      Console.WriteLine(&quot;Значение 2 находится в границах массива nums.&quot;);</b>

<b>    if (InRange(1, nums))</b>

<b>      Console.WriteLine(&quot;Значение 1 находится в границах массива nums.&quot;);</b>

<b>    if (InRange(5, nums))</b>

<b>      Console.WriteLine(&quot;Значение 5 находится в границах массива nums.&quot;);</b>

<b>    if (!InRange(0, nums))</b>

<b>      Console.WriteLine(&quot;Значение 0 HE находится в границах массива nums.&quot;);</b>

<b>    if (!InRange(6, nums))</b>

<b>      Console.WriteLine(&quot;Значение 6 HE находится в границах массива nums.&quot;);</b>

<b>    // Применить метод InRange() к объектам класса MyClass.</b>

<b>    if (InRange(new MyClass(2), mcs))</b>

<b>      Console.WriteLine(&quot;Объект MyClass(2) находится в границах массива nums.&quot;);</b>

<b>    if (InRange(new MyClass(1), mcs))</b>

<b>      Console.WriteLine(&quot;Объект MyClass(1) находится &quot; +</b>

<b>                   &quot;в границах массива nums.&quot;);</b>

<b>    if (InRange(new MyClass(4), mcs))</b>

<b>      Console.WriteLine(&quot;Объект MyClass(4) находится &quot; +</b>

<b>                   &quot;в границах массива nums.&quot;);</b>

<b>    if (!InRange(new MyClass(0), mcs))</b>

<b>      Console.WriteLine(&quot;Объект MyClass(0) HE &quot; +</b>

<b>                   &quot;находится в границах массива nums.&quot;);</b>

<b>    if (!InRange(new MyClass(5), mcs))</b>

<b>      Console.WriteLine(&quot;Объект MyClass(5) HE &quot; +</b>

<b>                   &quot;находится в границах массива nums.&quot;);</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>