Предположим, что у вас есть класс Person:
public class Person
{
public string Name { get; set;}
public IEnumerable<Role> Roles {get; set;}
}
Я должен, очевидно, создать экземпляр ролей в конструкторе. Теперь я использовал это со списком следующим образом:
public Person()
{
Roles = new List<Role>();
}
Но я обнаружил этот статический метод в пространстве имен System.Linq
IEnumerable<T> Enumerable.Empty<T>();
Из MSDN:
Метод
Empty(TResult)()
кэширует пустая последовательность типаTResult
. когда возвращаемый им объект перечисляется, он не дает элементов.В некоторых случаях этот метод полезен для передачи пустой последовательности пользовательский метод, который принимает
IEnumerable(T)
. Его также можно использовать для генерировать нейтральный элемент для методов таких какUnion
. См. Раздел "Пример" для примера этого использования
Так лучше написать такой конструктор? Вы используете его? Зачем? или если нет, то почему?
public Person()
{
Roles = Enumerable.Empty<Role>();
}