#c_sharp #cpp #generics #шаблоны_с++
Требуется реализовать шаблонную функцию сложения на C# Нужно разливать эту функцию из C++ на C# templateT sum(T a, T b) { return a + b; } Вот эта запись выдает ошибку что операция сложения не перегружена над типом Т public static T sum (T a, T b) { return a + b; }
Ответы
Ответ 1
public static T sum(T a, T b) { dynamic da = a, db = b; return da + db; } Console.WriteLine(sum(10, 20)); //30 Ответ 2
К сожалению такого же элегантного способа в C# нет, так как в этом языке для обобщений не предусмотрены ограничения по наличию оператора. В качестве несколько неуклюжей альтернативы можно предложить разве что написание обобщённых методов, заменяющих операторы, таких, как Add, Multiple и тд
Комментариев нет:
Отправить комментарий