我有以下代码在一个公共静态类中:
public static class MyList
{
public static readonly SortedList<int, List<myObj>> CharList;
// ...etc.
}
..但即使使用 readonly
,我仍然可以从另一个类向列表中添加项目:
MyList.CharList[100] = new List<myObj>() { new myObj(30, 30) };
或者
MyList.CharList.Add(new List<myObj>() { new myObj(30, 30) });
有没有一种方法可以使这件事只读,而不改变CharList的实现(这会破坏一些东西)? 如果我必须改变实现(使它不可更改),哪种方式最好? 我需要它成为List<T, T>,因此ReadOnlyCollection行不通。
注:ReadOnlyCollection是只读集合类,但不支持泛型参数为两个类型的情况。