Opérateur d'ignorance nul de C# (null!
)
Cet article explore comment l'opérateur null ignore (null!
) introduit dans C# 8.0 et versions ultérieures gère les types nullables.
Brève description :
L'opérateurnull!
remplace la nullité d'un littéral null
, le faisant se comporter comme une valeur non nullable, même si le null
lui-même est nullable.
Explication technique :
En C# 8.0, les types référence ne sont pas nullables par défaut et l'opérateur ?
est utilisé pour marquer explicitement les types nullables. L'opérateur !
est l'opposé de l'opérateur ?
.
L'application de l'opérateur !
à un type nullable le transforme en un type non nullable, indiquant que le compilateur ne doit pas effectuer de vérifications nulles sur cette variable. De même, l'instruction null!
s'applique !
au littéral null
, remplaçant ainsi son état nullable par défaut.
Utilisation :
En général, l'instruction null!
est utilisée lorsque le code nécessite une variable connue pour être non nulle mais qui est logiquement nullable. Cela permet aux programmeurs de désactiver temporairement les vérifications nulles dans les situations où elles sont inutiles ou indésirables. Prenons l'exemple suivant :
<code class="language-csharp">public string LastName { get; } = null!;</code>
Dans ce scénario, la propriété LastName
n'est pas nullable, mais elle peut se voir attribuer une valeur en utilisant le null!
littéral null
puisque le code suppose que la valeur ne sera pas nulle.
Remarque :
Bien que l'opérateur null!
soit utile dans des situations spécifiques, il doit être utilisé avec prudence. La surutilisation de null!
peut compromettre les avantages en matière de sécurité des types de référence nullables et introduire des bogues difficiles à trouver en raison d'exceptions d'exécution.
En résumé, l'instruction null!
est un outil puissant en C# 8.0 qui permet aux développeurs de remplacer la nullité des variables, y compris les littéraux null
. Cependant, il doit être utilisé avec prudence pour maintenir la fiabilité du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!