Supposons que vous ayez une classe Personne :
public class Person
{
public string Name { get; set;}
public IEnumerable<Role> Roles {get; set;}
}
Je devrais évidemment instancier les rôles dans le constructeur. Maintenant, j'ai l'habitude de le faire avec une liste comme ceci :
public Person()
{
Roles = new List<Role>();
}
Mais j'ai découvert cette méthode statique dans le System.Linq
espace de noms
IEnumerable<T> Enumerable<T>.Empty<T>();
Desde MSDN :
La méthode Empty(TResult)() permet de mettre en cache une séquence vide de type TResult. Lorsque l'objet qu'elle retourne est énuméré elle ne renvoie aucun élément.
Dans certains cas, cette méthode est utile pour passer une séquence vide à une méthode définie par l'utilisateur qui prend un IEnumerable(T). Elle peut également être utilisée pour générer un élément neutre pour des méthodes telles que Union. Voir la section Exemple pour un exemple de cette utilisation de
Est-il préférable d'écrire le constructeur de cette manière ? L'utilisez-vous ? Pourquoi ? ou si non, pourquoi pas ?
public Person()
{
Roles = Enumerable.Empty<Role>();
}