Pregunta directa: Tengo algunas variables que son dobles. Me gustaría poder almacenar un estado "nulo" en ellos, es decir, necesito poder representar que la variable no contiene datos válidos. Preferiría no asociar una variable booleana "es válida" con cada doble, sería feo y probablemente innecesario.¿Cómo uso un valor nulo en un doble en VB.Net 2010?
En primer lugar, me enteré de que uno tiene que declarar la variable diferente para permitir que el concepto de 'IsNothing' a ser comprobado, así que hacer esto:
dim someDouble as Double?
(Tenga en cuenta el signo de interrogación). Si no lo declaro así, la comprobación de errores me da un mensaje de "IsNot requiere operandos que tienen tipos de referencia".
Una vez declarado, estableciendo la variable a ...
someDouble = Nothing
... parece que ponerlo en cero, debido a que nunca se ejecuta el código en mi sentencia if/else que comprueba si someDouble IsNot Nothing
. ... lo cual es malo porque la variable puede legítimamente almacenar un 0 como un dato válido.
¿Qué me falta aquí? ¡Gracias!
EDITAR: Olvidé que estaba usando propiedades en una clase de Get
y Set
estos valores. Resulta que estaba haciendo las cosas bien, excepto que dejé el tipo de Property
como Double
en lugar de Double?
, por lo que volvía a cero en lugar del valor Nothing
. ¡Sin embargo, aún hay información útil en las respuestas a continuación!
@BalaR, sí, es – Fredou
Aha, esto es esencialmente lo que ya estaba haciendo ... excepto que me equivoqué y olvidé cambiar mi * Propiedad * para escribir '¿Doble?' desde 'Doble' por lo que estaba volviendo a un 'Doble' estándar al hacer 'Establecer'. Argh! Gracias por el enlace! – evilspoons