Обобщенные типы - 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;
    }
}

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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