Wie generische Typlimits für primitive Typen definieren?
Habe ich die folgende Methode mit generischem Typ:
T GetValue<T>();
Ich würde gerne Grenzwert T auf primitive Typen wie int, string, float, aber nicht Klasse Typ. Ich weiß, ich kann definieren generische für Klasse Typ wie dieser:
C GetObject<C>() where C: class;
Ich bin nicht sicher, ob es möglich ist, primitive Typen und wie wenn ja.
InformationsquelleAutor der Frage David.Chu.ca | 2009-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese können Sie verwenden, um es zu begrenzen, Wert-Typen:
Du auch erwähnen string. Leider strings nicht zulässig ist, da sind Sie nicht Wert-Typen.
InformationsquelleAutor der Antwort BFree
Eigentlich ist der job an bestimmte verlängern:
Beschränken numerischen Typen, die Sie bekommen können ein paar nützliche Hinweise die folgenden Beispiele definiert, die für die ValueType Klasse
InformationsquelleAutor der Antwort Dejan Dimeski
Hier ist, was Sie suchen:
InformationsquelleAutor der Antwort Joshua Belden
Es gibt keine Allgemeine Einschränkung, dass Spiele, die Dingen sauber. Was ist es, was Sie wirklich wollen, zu tun? Zum Beispiel, können Sie hacken, um es mit runtime-checks wie eine statische ctor (für generische Typen - nicht so einfach für generische Methoden)...
Jedoch; die meisten Male, die ich es ist, weil die Leute eine wollen:
EqualityComparer<T>.Default
Comparer<T>.Default
InformationsquelleAutor der Antwort Marc Gravell
Was Sie tatsächlich versuchen zu tun, in der Methode? Es könnte sein, dass Sie wirklich brauchen, C zu implementieren IComparable, oder someother-Schnittstelle. In dem Fall, dass Sie wollen, so etwas wie
InformationsquelleAutor der Antwort David McEwing