在我的域对象中,我正在使用IList属性映射1:M关系。
为了达到良好的隔离效果,我将其设置为只读:
private IList<PName> _property;
public ReadOnlyCollection<PName> Property
{
get
{
if (_property!= null)
{
return new ReadOnlyCollection<PName>(new List<PName>(this._property));
}
}
}
我不太喜欢ReadOnlyCollection,但是没有找到使该集合成为只读的接口(interface)解决方案。
现在,我想编辑属性声明,使它在返回空列表时返回空列表,而不是
null
,因此我以这种方式对其进行了编辑:if (_property!= null)
{
return new ReadOnlyCollection<PName>(new List<PName>(this._property));
}
else
{
return new ReadOnlyCollection<PName>(new List<PName>());
}
但是当我在测试中获得
Property
时,它始终为null。 最佳答案
如果为IList设置默认值怎么办
private IList<PName> _property = new IList<PName>();
public ReadOnlyCollection<PName> Property
{
get
{
return _property
}
}
关于c# - 如何返回一个空的ReadOnlyCollection,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18852166/