Ric*_*ard 25 c# collections list
我在公共静态类中有以下代码:
public static class MyList
{
public static readonly SortedList<int, List<myObj>> CharList;
// ...etc.
}
Run Code Online (Sandbox Code Playgroud)
..但即使使用readonly我仍然可以从另一个类添加项目到列表:
MyList.CharList[100] = new List<myObj>() { new myObj(30, 30) };
Run Code Online (Sandbox Code Playgroud)
要么
MyList.CharList.Add(new List<myObj>() { new myObj(30, 30) });
Run Code Online (Sandbox Code Playgroud)
有没有办法让事物只读而不改变CharList的实现(它会打破一些东西)?如果我必须改变实现(使其不可更改),那么最好的方法是什么?我需要它是List <T,T>,所以ReadOnlyCollection不会这样做
Mar*_*ers 44
修饰符readonly意味着除了声明或构造函数之外,不能赋值.它并不意味着分配的对象成为不可改变的.
如果希望对象是不可变的,则必须使用不可变的类型.ReadOnlyCollection<T>您提到的类型是不可变集合的示例.有关如何为字典实现相同的内容,请参阅此相关问题:
| 归档时间: |
|
| 查看次数: |
11930 次 |
| 最近记录: |