Обобщенные типы - C# (195222)

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

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

Я бы хотел написать подобную конструкцию:
public class test<T>
{
   public static T func(T t){return t*t;}
}
где T - может быть как базовым, так и пользовательским типом, главное, чтобы он поддерживал operator*. Но, естественно, что такой код код не компилируется из-за того, что T не поддерживает умножение. Решение - чтобы T был унаследован от интерфейса, где умножение объявлено и использовать слово where. Однако в базовых типах нет интерфейса с этим оператором. Кстати, в базовых типах (например, double) вообще нет оператора "*", хотя их умножение возможно. Не могли бы Вы пояснить, как такое возможно и как решить мою проблему?

Решение задачи: «Обобщенные типы»

textual
Листинг программы
public class Test<T>
{
    public static T Function(T t)
    {
        var tValue = t as dynamic;
        return tValue * tValue;
    }
}

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


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

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

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