Операция '>' в универсальном типе - C#

Узнай цену своей работы

Формулировка задачи:

Привет, всем. Пишу класс матриц. Пытаюсь реализовать метод получения максимального элемента. Он нужен в тех случаях, когда Т - это числовой тип (я так понял, он должен наследоваться от ValueType).

Есть ли способ проверять тип Т на числовой и, затем, сравнивать его объекты?

public T MaxElement ()
        {
            T max = matrix[0, 0];
 
            foreach (T x in matrix)
            {
                if (x > max) // тут, естественно, ошибка
                {
                    max = x;
                }
            }
        }

Решение задачи: «Операция '>' в универсальном типе»

textual
Листинг программы
class Matrix<T> where T : IComparable<T>
    {
        // ...
 
        public T MaxElement () 
        {
            T max = matrix[0, 0];
 
            foreach (T x in matrix)
            {
                if (x.CompareTo(max) > 0)
                {
                    max = x;
                }
            }
            
            return max;
        }
 
        // ...
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5
Похожие ответы