¿Cómo se convierte un anulable bool?
en bool
en C #?
Lo he intentado x.Value
o x.HasValue
...
En última instancia, debe decidir qué representará el bool nulo. Si null
es así false
, puede hacer esto:
bool newBool = x.HasValue ? x.Value : false;
O:
bool newBool = x.HasValue && x.Value;
O:
bool newBool = x ?? false;
VB.NET
si lo hacesdim newBool as Boolean = CBool(x)
? ¿null
Se convertirá enfalse
o se lanzará una excepción?Linq
cláusula de declaración 'Dónde', no pude entender por quélifted operators
no parecía funcionar dentro de Linq (¿tal vez sea solo VB.NET?) - Acabo de probar y arroja una excepción de lanzamiento no válidaPuede usar el operador de fusión nula :,
x ?? something
dondesomething
es un valor booleano que desea usar six
esnull
.Ejemplo:
newBool
será falso.fuente
bool? myBool = null; bool newBool = myBool ?? false;
Puedes usar el
Nullable{T}
GetValueOrDefault()
método. Esto devolverá falso si es nulo.fuente
if (nullableBool.GetValueOrDefault())
Si va a utilizar el
bool?
en unaif
declaración, creo que lo más fácil de hacer es comparar contrue
ofalse
.Por supuesto, también puede comparar con null.
Si va a convertirlo en un bool para pasarlo a otras partes de la aplicación, entonces el operador Null Coalesce es lo que desea.
Si ya ha verificado el valor nulo y solo desea el valor, acceda a la propiedad Valor.
fuente
La forma más sencilla es utilizar el operador de fusión nula:
??
Los
??
valores que aceptan valores NULL funcionan examinando la expresión que admite valores NULL proporcionada. Si la expresión que acepta valores NULL tiene un valor, se usará su valor; de lo contrario, usará la expresión a la derecha de??
fuente
fuente
La forma completa sería:
O puede probar valores específicos usando
fuente
Algo como:
fuente
Esta respuesta es para el caso de uso cuando simplemente desea probar el
bool?
en una condición. También se puede usar para obtener una normalidadbool
. Es una alternativa que personalmente encuentro más fácil de leer que elcoalescing operator ??
.Si desea probar una condición, puede usar este
Lo anterior if será cierto solo si el
bool?
es verdadero.También puede usar esto para asignar un regular
bool
de unbool?
bruja es lo mismo que
fuente
Ésta es una variación interesante del tema. A primera y segunda mirada, asumiría que se ha tomado la verdadera rama. ¡No tan!
La forma de obtener lo que desea es hacer esto:
fuente
System.Convert funciona bien para mí.
using System; ... Bool fixed = Convert.ToBoolean(NullableBool);
fuente