如果我有一个包含例如List <string>的类,并且我希望其他类能够看到列表但是没有设置它,我可以声明
public class SomeClass()
{
public List<string> SomeList { get; }
}
Run Code Online (Sandbox Code Playgroud)
这将允许另一个类访问SomeList而不设置它.
但是,尽管调用类无法设置列表,但它可以添加或删除元素.我该如何预防呢?我想我可以使用一个字段并返回List的副本而不是使用属性,但这感觉不对.
(这应该很简单但我必须遗漏一些......)
Ano*_*on. 14
您将无法使用autoproperty.
public class SomeClass()
{
private List<string> someList;
public IList<string> SomeList {
get { return someList.AsReadOnly(); }
}
}
Run Code Online (Sandbox Code Playgroud)
您需要将列表作为ReadOnly list返回。您可以使用以下代码来执行此操作:
using System.Collections.ObjectModel;
public ReadOnlyCollection<string> GetList() {
return SomeList.AsReadOnly();
}
Run Code Online (Sandbox Code Playgroud)