Domanda semplice: ho alcune variabili doppie. Mi piacerebbe essere in grado di memorizzare uno stato "nullo" in essi, cioè ho bisogno di essere in grado di rappresentare che la variabile non contiene dati validi. Preferirei non associare una variabile booleana "valida" ad ogni singolo doppio, sarebbe brutto e probabilmente non necessario.Come si usa un valore nullo in un doppio in VB.Net 2010?
In primo luogo, ho scoperto che si deve dichiarare la variabile in modo diverso per permettere il concetto di 'IsNothing' da controllare, in modo da fare questo:
dim someDouble as Double?
(Si noti il punto interrogativo). Se non lo dichiaro in quel modo, il controllo degli errori mi dà un messaggio "IsNot richiede operandi che hanno tipi di riferimento".
Una volta dichiarata, impostando la variabile al ...
someDouble = Nothing
... sembra di impostare a a zero, perché non è mai eseguito il codice nel mio if/else che controlla se someDouble IsNot Nothing
. .. che è male perché la variabile può legittimamente memorizzare uno 0 come una parte di dati valida.
Cosa mi manca qui? Grazie!
MODIFICA: ho omesso che stavo usando le proprietà in una classe a Get
e Set
questi valori. Si scopre che stavo facendo le cose bene, tranne che ho lasciato il mio tipo Property
come Double
invece di un Double?
in modo che tornasse a zero al posto del valore Nothing
. Informazioni utili ancora nelle risposte qui sotto, però!
@BalaR, sì è – Fredou
Aha, questo è essenzialmente quello che stavo già facendo ... tranne che mi sono scocciato e ho dimenticato di cambiare la mia proprietà * * per digitare 'Double?' da "Double" quindi è stato restituito a un "Double" standard quando si esegue il "Set". Argh! Grazie per il link! – evilspoons