Was ist der Standardwert des Nullable-Typs "int?" (Einschließlich Fragezeichen)?
In C#, was auch der Standardwert ist eine Instanz der Klasse variable vom Typ int?
?
Zum Beispiel in dem folgenden code, welchen Wert wird MyNullableInt
haben, wenn es nicht explizit zugewiesen?
class MyClass
{
public int? MyNullableInt;
}
(Es scheint wahrscheinlich, dass die Antwort, ist nahezu gewiss entweder null
oder 0
aber welche von denen ist es?)
InformationsquelleAutor der Frage Jon Schneider | 2015-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den default-Wert für
int?
-- und für jede nullable-Typ, verwendet die "Art?" - Deklaration-istnull
.Warum dies der Fall ist:
int?
ist syntaktischer Zucker für die Art Nullable<T> (wobei Tint
), ein struct. (Referenz)Nullable<T>
Typ hat eine bool HasValue Mitglied, die, wenn Siefalse
macht dieNullable<T>
Instanz "agieren wie" einnull
Wert. Insbesondere die Nullable<T>.Equals-Methode wird überschrieben, um zurücktrue
wenn einNullable<T>
mitHasValue == false
ist im Vergleich mit einem tatsächlichennull
Wert.null
.bool
variable in C# istfalse
(Referenz). Daher dieHasValue
Eigenschaft eines Standard -Nullable<T>
Instanz istfalse
; was wiederum ermöglicht, dassNullable<T>
Instanz selbst handeln wienull
.InformationsquelleAutor der Antwort Jon Schneider
Fühlte ich mich wichtig, zu teilen der
Nullable<T>.GetValueOrDefault()
Methode ist besonders nützlich bei der Arbeit mit mathematischen Berechnungen, dass die VerwendungNullable<int>
akaint?
Werte. Es gibt viele Male, wenn Sie nicht haben, um zu überprüfenHasValue
Eigentum und Sie können nur NutzungGetValueOrDefault()
statt.InformationsquelleAutor der Antwort Brian Ogden
InformationsquelleAutor der Antwort Rufus L