Предположим, что у вас есть класс 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>();
}