Metoda generyczna

0

Witam mam pytanie co do metody generycznej chce zrobić coś takiego

static T Suma<T>(T a, T b)
{
a += b;
return a;//Czy return a+b;
}

Daje mi błąd
Operator += cannot be applied to operands of type T and T był bym wdzięczny za pomoc przykłady na necie głównie pokazują przykłady z przypisaniem a jestem ciekaw jak wywołać + na tym :)

Dzięki

0

Nie da rady - przynajmniej nie tak bezpośrednio jak ty napisałeś.

Niedawno był taki sam temat na forum - ktoś chyba podał workaround, lecz niezbyt to ładnie będzie wyglądać.

0

Klasa object nie ma zdefiniowanych operatorów arytmetycznych. Na dodatek struktury "matematyczne" (int, float, double) nie mają w .NET wspólnej klasy ani interfejsu bazowego (chyba najbardziej zjebana rzecz w .NET), więc nawet nie da się zrobić żadnego constraintu na T. Ergo - nie da się tego zrobić generycznie.

Jedynym rozwiązaniem, oprócz pisania oddzielnych metod dla każdego typu danych, są operacje na typie dynamic.

0

Dzięki za odpowiedź.

1 użytkowników online, w tym zalogowanych: 0, gości: 1