阻止其他类添加到具有"私有集"的列表;

Pri*_*six 1 c# list

目前,我有一个类(classB)有一个列表--v

class classB
{
    public List<int> alist { get; private set; }
...
Run Code Online (Sandbox Code Playgroud)

我可以从另一个类(classA)访问此类

ClassB foo = new ClassB();
        foo.alist.Add(5);
Run Code Online (Sandbox Code Playgroud)

问题是,我可以阻止这种情况发生吗?(让其与其他课程无法改变)谢谢!

Kev*_*sse 5

只需公开IReadOnlyList<T>界面:

private List<int> alist;

public IReadOnlyList<int> Alist 
{
    get { return this.alist; }
}
Run Code Online (Sandbox Code Playgroud)

从类的内部,您继续使用"alist"来添加/删除元素.从类的外部,您只能访问"Alist",它不允许修改集合(除非显式转换).