假设你有一个人类:
public class Person
{
public string Name { get; set;}
public IEnumerable<Role> Roles {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我显然应该在构造函数中实例化角色.现在,我曾经使用像这样的List:
public Person()
{
Roles = new List<Role>();
}
Run Code Online (Sandbox Code Playgroud)
但我在System.Linq命名空间中发现了这种静态方法
IEnumerable<T> Enumerable.Empty<T>();
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
该
Empty(TResult)()方法缓存一个空的序列TResult.当它返回的对象被枚举时,它不会产生任何元素.在某些情况下,此方法对于将空序列传递给用户定义的方法非常有用
IEnumerable(T).它还可以用于为诸如的方法生成中性元素Union.有关此用法的示例,请参阅示例部分
那么编写这样的构造函数会更好吗?你用它吗?为什么?如果没有,为什么不呢?
public Person()
{
Roles = Enumerable.Empty<Role>();
}
Run Code Online (Sandbox Code Playgroud)