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>();
}
Array.Empty<Role>()
,它明确地是一个数组,因此也是一个IList<T>
。在Core中,实际上是同一个数组,只有类型不同。 - Jon Hanna