相关疑难解决方法(0)

列表<T>只读私有集

我怎样才能公开一个List<T>只读它,但可以私下设置?

这不起作用:

public List<string> myList {readonly get; private set; }
Run Code Online (Sandbox Code Playgroud)

即使你这样做:

public List<string> myList {get; private set; }
Run Code Online (Sandbox Code Playgroud)

你仍然可以这样做:

myList.Add("TEST"); //This should not be allowed
Run Code Online (Sandbox Code Playgroud)

我想你可以:

public List<string> myList {get{ return otherList;}}
private List<string> otherList {get;set;}
Run Code Online (Sandbox Code Playgroud)

.net c# generics c#-3.0

50
推荐指数
4
解决办法
3万
查看次数

最佳实践:如何公开只读ICollection

我在课堂上ICollection<T>打电话foos,我想以只读方式公开(见这个问题).我看到界面定义了一个属性.IsReadOnly,这似乎是合适的......我的问题是:我如何让对于foos只读类的消费者明白?

.IsReadOnly在尝试未实现的方法之前,我不想依赖它们记住查询.Add().理想情况下,我想揭露foosReadOnlyCollection<T>,但它没有实现IList<T>.我应该foo通过一个名为,例如,GetReadOnlyFooCollection而不是通过属性公开的方法公开?如果是这样,这不会混淆那些期望的人ReadOnlyCollection<T>吗?

这是C#2.0,所以扩展方法ToList()不可用......

c# collections c#-2.0

10
推荐指数
2
解决办法
7165
查看次数

标签 统计

c# ×2

.net ×1

c#-2.0 ×1

c#-3.0 ×1

collections ×1

generics ×1