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