我怎样才能公开一个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) 我在课堂上ICollection<T>打电话foos,我想以只读方式公开(见这个问题).我看到界面定义了一个属性.IsReadOnly,这似乎是合适的......我的问题是:我如何让对于foos只读类的消费者明白?
.IsReadOnly在尝试未实现的方法之前,我不想依赖它们记住查询.Add().理想情况下,我想揭露foos的ReadOnlyCollection<T>,但它没有实现IList<T>.我应该foo通过一个名为,例如,GetReadOnlyFooCollection而不是通过属性公开的方法公开?如果是这样,这不会混淆那些期望的人ReadOnlyCollection<T>吗?
这是C#2.0,所以扩展方法ToList()不可用......