null!
Signification de l'opérateur
Dans C# 8.0 et sa fonctionnalité de types de référence nullables, l'opérateur !
a un nouvel objectif, appelé « opérateur tolérant les valeurs Null ». Lorsqu'il est appliqué à un type, cet opérateur remplace la valeur nullable de la valeur, la rendant non nullable, ce qui signifie que bien que nullable par défaut, null est traité comme un type « non nul ».
Exemple pratique
Considérons une classe où les propriétés LastName
sont nullables et les propriétés MiddleName
non nullables :
<code class="language-csharp">public class Person { public string? LastName { get; set; } public string MiddleName { get; set; } = null!; }</code>
Différence entre la première et la deuxième ligne
LastName
est nullable, ce qui lui permet de contenir une valeur nulle, représentée par l'opérateur ?
. MiddleName
ne sont pas nullables, représentés par !
. Cela signifie qu'il ne peut pas contenir de valeurs nulles. Cependant, l'expression null!
remplace explicitement cette non-nullabilité et traite null comme une valeur non nulle. Explication technique
C# 8.0 a introduit la « sécurité nulle », où tous les types de référence ne sont pas nullables par défaut. Pour représenter un type nullable, l'opérateur ?
doit être utilisé. À l’inverse, l’opérateur !
peut être appliqué aux types nullables pour indiquer la non-nullabilité.
Remarques
!
désactive uniquement les vérifications au niveau du compilateur ; si la valeur est nulle, des exceptions d'exécution peuvent toujours se produire. 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!