Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Шаблонная функция C#

#c_sharp #cpp #generics #шаблоны_с++


Требуется реализовать шаблонную функцию сложения на C#

Нужно разливать эту функцию из C++ на C# 

template
T 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 и тд

Комментариев нет:

Отправить комментарий