可能是重复问题:
如何在私有属性中使用只读List<T>
我有一个类:
public SomeClass{
public List<Status> log { get; private set; }
public enum Status
{
waitingForConnection,
connected,
receivingFile,
doneReceivingFile
}
// later I initialize log and populate it...
///
}
目前很容易看出我只能在类内部设置新的日志列表。如何防止用户编辑列表中的项目。换句话说,我不希望用户能够执行以下操作:
SomeClass someClass = new SomeClass();
//....
someClass.log[3] = \\different value
如果我将列表日志设为私有,那么我就能实现这个功能,但是我想让用户能够查看日志列表的内容,但不能编辑其中的项目。
另外,我也不想将公共枚举状态(Status)设为私有,以便用户能够查看状态...
那么我该如何限制用户编辑列表中的项目呢?