Wie funktionieren Nullable-Typen in C #?
Was ist der hinter-den-kulissen Unterschied zwischen 'int' und 'int'? Ist 'int?', irgendwie eine Referenz geben?
InformationsquelleAutor der Frage Mike Comstock | 2008-09-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
? umschließt den Wert, Typ (T) in einem Nullable<T> struct:
http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx
InformationsquelleAutor der Antwort core
Neben "int?" ist eine Abkürzung für "Nullable", es wurde auch die Infrastruktur in der CLR, um implizit und stillschweigend die Umwandlung von "int?" und "int". Dies bedeutet auch, dass alle Boxen-Betrieb wird implizit eine box der tatsächliche Wert (d.h., es ist unmöglich, auf Feld null-Werte zulässt als null, es ergibt sich immer entweder die boxed-Wert von T oder ein null-Objekt).
Ich lief in viele dieser Probleme, wenn Sie versuchen zu erstellen, die null-Werte zulässt, wenn Sie nicht wissen, T zur compile-Zeit (Sie weiß nur das es zur Laufzeit). http://bradwilson.typepad.com/blog/2008/07/creating-nullab.html
InformationsquelleAutor der Antwort Brad Wilson
Für eine der besseren "hinter den kulissen" Gespräche über Nullable-Typen, die Sie sollten schauen CLR Via C# von Jeffrey Richter.
Das ganze Kapitel 18 widmet sich der Diskussion im detail Nullable-Typen. Dieses Buch eignet sich auch hervorragend für viele andere Bereiche der .NET CLR Interna.
InformationsquelleAutor der Antwort Ash