int?
ist die Kurzform für Nullable<int>
. Die beiden Formen sind austauschbar.
Nullable<T>
ist ein Operator, den Sie mit einem Werttyp verwenden können T
um es zu akzeptieren null
.
Falls Sie es noch nicht wissen: Werttypen sind Typen, die Werte als int
, bool
, char
usw...
Sie können keine Referenzen auf Werte akzeptieren: Sie würden einen Kompilierfehler erzeugen, wenn Sie ihnen eine null
im Gegensatz zu Referenztypen die es offensichtlich akzeptieren kann.
Warum sollten Sie das brauchen? Weil Ihre Wertvariablen manchmal Nullreferenzen erhalten könnten, die von etwas zurückgegeben werden, das nicht sehr gut funktioniert, wie eine fehlende oder undefinierte Variable, die von einer Datenbank zurückgegeben wird.
Ich empfehle Ihnen die Lektüre der Microsoft-Dokumentation weil sie das Thema sehr gut abdeckt.
3 Stimmen
Es gibt entsprechende Fragen für Referenztyp - stackoverflow.com/questions/69433546/
1 Stimmen
Er verweist darauf, dass der Wertetyp (hier int?) ein nullbarer Typ ist.