Typ generyczny - kontrola typu

Typ generyczny - kontrola typu
GR
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 12 lat
0

Cześć,

Ostatnio walczę z typami generycznymi. Chciałbym by dana klasa mogła obsługiwać tylko konkretne typy generyczne, np. wszystkie klasy, które obsługują metody z Interfejsu IExample. Macie jakiś pomysł na wykonanie tego?

Najlepiej by kontrola była już na poziomie kompilacji, a jeśli jest to niemożliwe to przynajmniej w konstruktorze - ale bez potrzeby tworzenia tymczasowego obiektu :)

Pozdrawiam,
Grzegorz Wiśniewski

GR
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 12 lat
0

Nie wiem jak usunąć, temat już nie ważny. Można zrobić to oczywiście w taki sposób jak opisuje MSDN: http://msdn.microsoft.com/en-us/library/d5x73970.aspx

Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
0
Kopiuj
<T>(t something) where T: IExample
{
...
}

GR
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 12 lat
0

Pozwolę sobie odświeżyć ten temat :) O zastosowaniu generycznych klas / metod wydawało mi się, że wiem już całkiem sporo, do momentu gdy pojawił się problem...

Potrzebuję stworzyć klasę generyczną, która przyjmować będzie typy dla których zdefiniowany został operator '>' i '<' itd..

Zastanawiam się czy jest to możliwe?

Pozdrawiam,
Grzegorz

Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
0

nie


somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:6 dni
  • Lokalizacja:Wrocław
0

No chyba, że operatory te wywoływałyby odpowiednie metody zdefiniowane w jakimś interfejsie.

msm
Administrator
  • Rejestracja:około 16 lat
  • Ostatnio:5 miesięcy
1

IComparable? ;)

quetzalcoatl
  • Rejestracja:około 18 lat
  • Ostatnio:ponad 6 lat
0
MSM napisał(a)

IComparable? ;)

to jedyne wyjscie, ale operatorow >/</!/= ... i tak nie dostarczy.
zapomnijcie o jakimkolwiek metaprogramowaniu z uzyciem operatorow. dopoki C# nie wprowadzi czegos a'la statyczne interfejsy, tego nie bedzie, gdyz nie da sie statycznie zdefiniowac class/generic/type/constraintow ktore by takie wymaganie wyrazaly. cieszmy sie ze w cs4 dorzucili lepsze (ko)wariancje.. szkoda ze tylko w jednym (dwoch?) miesjcach da sie je zauwazyc:| nie da sie i kropka, jesli bardzo chcecie, zostaje zmienic jezyk, np. na ironruby i zatrzasnijcie to w pobocznej dllce.


no to pojechałem z nieobecnością.. chwila przerwy i prawie rok przeleciał

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.