Wie benutze ich ein null-Wert in einen double-in VB.Net 2010?
Einfache Frage: ich habe ein paar Variablen, die Doppelzimmer. Ich möchte in der Lage sein zu speichern, die "null" Stand in Ihnen, D. H. ich muss in der Lage sein, zu erklären, dass die variable enthält keine gültigen Daten. Ich würde wirklich lieber nicht zuordnen eines boolean "gilt" variable mit jedem einzelnen, Doppel -, das wäre hässlich und wahrscheinlich unnötig.
Ersten, fand ich heraus, dass man Sie deklarieren die variable anders zu erlauben, das Konzept der 'IsNothing' überprüft werden, so dass ich dies tun:
dim someDouble as Double?
(Hinweis: das Fragezeichen). Wenn ich nicht erklären wie der Fehler-check gibt mir ein "IsNot erforderlich, die Operanden, die Referenz-Typen" - Meldung.
Einmal deklariert, wird die variable auf...
someDouble = Nothing
...scheint, um es zu null, weil es nie läuft der code in meine if/else-Anweisung, die prüft, ob someDouble IsNot Nothing
... das ist schlecht, weil die variable legitim store eine 0 als gültigen Teil der Daten.
Was vermisse ich hier? Danke!
EDIT: ich weggelassen, ich war mit Eigenschaften in einer Klasse Get
und Set
diese Werte. Es stellt sich heraus, dass ich die Dinge richtig tun außer, dass ich Links meine Property
's Typ als Double
statt einer Double?
also es wurde Gießen wieder auf null, anstatt die Nothing
Wert. Nützliche Informationen noch in den nachfolgenden Antworten, aber!
InformationsquelleAutor evilspoons | 2012-01-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
den Sie gehen sollten, Lesen Sie auf Nullable-Struktur auf MSDN
dieser wird erklären, wie es zu benutzen
Beispiel:
Aha, das ist im Grunde das, was ich schon dabei war... außer ich gepatzt und vergessen zu ändern, mein Eigenschaften zu Typ 'Double?' von 'Double' so war es Gießen es zurück zu einem standard "Doppelt", wenn Sie die 'Set'. Argh! Danke für den link!
InformationsquelleAutor Fredou
Wobei ich nicht weiß, was die Ursache für deine Probleme mit "Nichts", könnte man auch verwenden, "Verdoppeln.NaN" (not a Number) statt. Dies würde auch nicht verlangen, dass die spezielle "Double?" - Deklaration.
InformationsquelleAutor RBarryYoung