Metoda generyczna

GE
  • Rejestracja: dni
  • Ostatnio: dni
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

Deti
  • Rejestracja: dni
  • Ostatnio: dni
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ć.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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.

GE
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za odpowiedź.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.