Saltar al contenido

no se puede convertir implícitamente el tipo ‘bool?’ para ‘bool’. Existe una conversión explícita (¿falta un reparto?)

Presta atención ya que en este post vas a encontrar la respuesta que buscas.

Solución:

Como dijeron los demás bool? no es igual a bool. bool? puede también ser nullver Nullable (msdn).

Si sabes lo que null state quiere implicar, fácilmente puede usar el ?? – null-operador de fusión (msdn) para convertir su bool? para bool sin efectos secundarios (Exception).

Ejemplo:

//Let´s say "chkDisplay.IsChecked = null" has the same meaning as "chkDisplay.IsChecked = false" for you
//Let "check" be the value of "chkDisplay.IsChecked", unless "chkDisplay.IsChecked" is null, in which case "check = false"

bool check = chkDisplay.IsChecked ?? false;

has declarado IsChecked como un bool? (Nullable). Un booleano anulable puede ser true, false o null. Ahora pregúntate: si IsChecked era nullentonces, ¿qué valor se debe asignar a IsDisplay (que sólo puede tomar un true o false)? La respuesta es que no hay una respuesta correcta. Una conversión implícita aquí solo podría producir problemas ocultos, razón por la cual los diseñadores decidieron permitir solo una conversión explícita y no implícita.

Me enfrento a tu pregunta cuando estoy usando el null comprobar operador ?.:

if (!RolesList?.Any()) //Not accepted: cannot convert bool? to bool

Así que estoy usando esto en su lugar

if (RolesList?.Any() != true)
  //value is null or false

En tu caso deberías configurarlo así:

obj.IsVisible = chkDisplayStuff.IsChecked ?? false;

Si posees alguna vacilación y capacidad de aumentar nuestro división puedes escribir un informe y con deseo lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *