Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 19482|Répondre: 2

[Source] C# 8.0 peut être un type de référence nulle

[Copié le lien]
Publié le 26-03-2022 à 16:40:21 | | | |
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.





Précédent:Interroger l’adresse distante du Git du projet en cours
Prochain:ASP.NET Core (douze) front-end JS, regroupement CSS et compression
Publié le 26-03-2022 à 20:57:32 |
Apprendre à apprendre
Publié le 28-03-2022 08:23:47 |
Viens apprendre
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com