Maison > développement back-end > C++ > Les méthodes doivent-elles renvoyer des collections nulles ou vides ?

Les méthodes doivent-elles renvoyer des collections nulles ou vides ?

Linda Hamilton
Libérer: 2025-01-25 15:01:09
original
286 Les gens l'ont consulté

Should Methods Return Null or Empty Collections?

Retour à la collection nul ou vide: la meilleure pratique

Lorsque la conception renvoie l'ensemble en tant que méthode de renvoi du type de valeur, cela causera un problème: devrait-il renvoyer null ou une collection vide? La meilleure pratique est fortement recommandée pour retourner la collection vide en toutes circonstances.

Pourquoi choisir une collection vide?

Retour null est une mauvaise pratique car elle peut provoquer une complexité de code inutile et des erreurs d'exécution potentielles. Par exemple, si vous retournez null pour l'attribut de collection:

Si MyInstance.CollectionProperty est en effet nul, ce code peut provoquer des anomalies. Au contraire, il est préférable de renvoyer une collection vide pour s'assurer que le code ci-dessus peut toujours être exécuté sans erreurs.

La meilleure pratique des attributs
<code class="language-c#">if(myInstance.CollectionProperty != null)
{
  foreach(var item in myInstance.CollectionProperty)
    /* 如果 CollectionProperty 为 null,此代码可能会失败 */
}</code>
Copier après la connexion

Pour les attributs de l'ensemble de retour, il est recommandé d'initialiser l'attribut une seule fois. Cela peut être achevé pendant le constructeur qui contient les classes contenant l'attribut:

Utiliser C # 6, vous pouvez utiliser une version plus concise:

La meilleure pratique de la méthode
<code class="language-c#">public List<foo> Foos { public get; private set; }

public Bar() { Foos = new List<foo>(); }</code>
Copier après la connexion

Pour la méthode de retour de l'ensemble, si l'ensemble réel n'existe pas, la collection vide est renvoyée. Vous pouvez utiliser la méthode énuable.empty
<code class="language-c#">public List<foo> Foos { get; } = new List<foo>();</code>
Copier après la connexion
() à cet effet:

Cette méthode garantit que même si InnerGetFoos () renvoie NULL, cette méthode renvoie toujours un ensemble vide pour empêcher les erreurs potentielles.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal