"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les méthodes doivent-elles renvoyer des collections nulles ou vides ?

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

Publié le 2025-01-26
Parcourir:880

Should Methods Return Null or Empty Collections?

Retour à la collection null ou vide: meilleure pratique

Lorsque la conception renvoie l'ensemble en tant que méthode de rendement de la 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 de conduite potentielles. Par exemple, si vous retournez null pour l'attribut de collection:

if (myinstance.collectionproperty! = null) {{ Foreach (élément var dans myinstance.collectionproperty) / * Si la collectionProperty est nul, ce code peut échouer * / }

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.

if(myInstance.CollectionProperty != null)
{
  foreach(var item in myInstance.CollectionProperty)
    /* 如果 CollectionProperty 为 null,此代码可能会失败 */
}
Pour les attributs de l'ensemble de retour, il est recommandé d'initialiser l'attribut une seule fois. Cela peut être terminé pendant le constructeur qui contient les classes contenant l'attribut:

Liste publique Foos {public get;}} barre public

Utilisez C # 6 pour utiliser une version plus concise: public list foos {get;} = new list ();

Méthode meilleure pratique

public List Foos { public get; private set; }

public Bar() { Foos = new List(); }

public ienumerable getMyfoos () {{ Return innergetFoos () ?? ENUMableable.Empty (); }

 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. 
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3