gpt4 book ai didi

c# - 如何返回一个空的 ReadOnlyCollection

转载 作者:太空狗 更新时间:2023-10-29 20:13:41 25 4
gpt4 key购买 nike

在我的域对象中,我将 1:M 关系映射到 IList 属性。

为了更好的隔离,我这样设置为只读:

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。

最佳答案

因为它是只读的并且是空的,所以将其存储在静态中是安全的:

private static readonly ReadOnlyCollection<PName> EmptyPNames = new List<PName>().AsReadOnly();

然后在任何需要的地方重复使用它,例如:

if (_property!= null)
{
return new ReadOnlyCollection<PName>(new List<PName>(this._property));
}
else
{
return EmptyPNames;
}

关于c# - 如何返回一个空的 ReadOnlyCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18852166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com