Avant C# 8.0, tous les types de référence pouvaient être nuls. Les types de référence nulle désignent un ensemble de caractéristiques introduites dans C# 8.0 pouvant être utilisées pourMinimisez la probabilité que votre code provoque des projections à l’exécution。 Les types de référence annulables incluent trois fonctionnalités pour aider à éviter ces exceptions, notamment la possibilité de marquer explicitement les types de référence comme annulables :
- Analyse du flux statique optimisée pour déterminer si une variable est nulle avant qu’elle ne soit dérréférenceée.
- Attributs utilisés pour annoter l’API afin que Stream Analytics détermine l’état nul.
- Annotations de variables que les développeurs peuvent utiliser pour déclarer explicitement l’état nul attendu d’une variable.
L’analyse des états nul et les annotations des variables sont désactivées par défaut pour les projets existants, ce qui signifie que tous les types de référence restent nullables. À partir de .NET 6, ces fonctionnalités sont activées par défaut pour les nouveaux projets.
Documentation:La connexion hyperlientérée est visible.
Ce qu’un type de référence qui peut être nul est de faireMinimisez le risque que votre application affiche une System.NullReferenceException à l’exécution。
Dans un projet que je développe avec .NET 6, je crée une propriété Name pour une nouvelle propriété qui me pose l’avertissement suivant :
Lors de la sortie du constructeur, la propriété non nulle « Name » doit contenir une valeur non nulle. Considérons la déclaration de la propriété comme peut être nulle.
Même si c’est un avertissement, c’est très agaçant ! Comment corriger cet avertissement ? La valeur par défaut pour l’affectation est une chaîne vide, et le code est le suivant :
C’est-à-dire que lorsque la propriété n’est pas attribuée manuellement, la valeur par défaut de la propriété est une chaîne vide.
Lorsqu’on utilise une variable locale,Le type est en ficelle ? peut également générer des avertissements, comme montré dans la figure ci-dessous :
Déterminez si la variable est nulle avant de l’utiliser, et si oui, ne pas exécuter le code ci-dessous, ou vous le pensezLa variable ne peut jamais être nulle, peut être utiliséArgumentNullException.ThrowIfNull(assemblyFullName); Les avertissements peuvent aussi être supprimés ! En d’autres termes, si la variable est nulle, elle lance une exception directement pendant l’exécution !
Résumé : C# 8.0 a introduit cette fonctionnalité, et personnellement je pense qu’elle vise à améliorer la rigueur des développeurs et à éviter de commettre des erreurs de bas niveau.
Pour d’autres solutions de méthode pouvant être nulles, veuillez consulter :La connexion hyperlientérée est visible.
|