Saltar al contenido

¿Qué significa el signo de exclamación antes de invocar un método en C# 8.0?

Luego de de nuestra prolongada selección de datos dimos con la respuesta este enigma que presentan muchos lectores. Te ofrecemos la solución y nuestro objetivo es serte de gran apoyo.

Solución:

este seria el null operador indulgente.
Le dice al compilador “esto no es nullconfía en mí”, por lo que no emite una advertencia para un posible null referencia.

En este caso particular le dice al compilador que Entity no es null.

Esto se llama el null-operador indulgente y está disponible en C# 8.0 y versiones posteriores. No tiene efecto en tiempo de ejecución, solo en tiempo de compilación. Su propósito es informar al compilador que alguna expresión de un tipo anulable no es null para evitar posibles advertencias sobre null referencias

En este caso le dice al compilador que Entity no es null.

! es el operador de perdón nulo. En concreto, tiene dos efectos principales:

  • cambia el tipo de la expresión (en este caso modifica Entity) de un tipo anulable a un tipo no anulable; (por ejemplo, object? se convierte object)

  • suprime las advertencias relacionadas con la anulabilidad, que pueden ocultar otras conversiones

Esto parece surgir particularmente con parámetros de tipo:

IEnumerable? maybeListOfMaybeItems = new object[]  1, 2, 3 ;

// inferred as IEnumerable
var listOfMaybeItems = maybeListOfMaybeItems!;

// no warning given, because ! supresses nullability warnings
IEnumerable listOfItems = maybeListOfMaybeItems!;

// warning about the generic type change, since this line does not have !
IEnumerable listOfItems2 = listOfMaybeItems;

Sección de Reseñas y Valoraciones

Si guardas alguna cuestión y capacidad de aclarar nuestro artículo puedes ejecutar una nota y con mucho placer lo estudiaremos.

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



Utiliza Nuestro Buscador

Deja una respuesta

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

Respuestas a preguntas comunes sobre programacion y tecnología