У меня есть класс в C #, который содержит словарь, который я хочу создать и ничего не гарантировать при добавлении, редактировании или удалении из этого словаря, пока существует класс, который его содержит.
readonly на самом деле не помогает, после того, как я проверил и увидел, что могу добавлять элементы после. Например, я создал пример:
public class DictContainer
{
private readonly Dictionary<int, int> myDictionary;
public DictContainer()
{
myDictionary = GetDictionary();
}
private Dictionary<int, int> GetDictionary()
{
Dictionary<int, int> myDictionary = new Dictionary<int, int>();
myDictionary.Add(1, 2);
myDictionary.Add(2, 4);
myDictionary.Add(3, 6);
return myDictionary;
}
public void Add(int key, int value)
{
myDictionary.Add(key, value);
}
}
Я хочу, чтобы метод Add не работал. Если возможно, я хочу, чтобы он даже не компилировался. Есть предложения?
На самом деле, я волнуюсь, потому что это код, который будет открыт для изменения многими людьми. Таким образом, даже если я скрою метод Add, для кого-то будет возможно «невинно» создать метод, который добавляет ключ, или удаляет другой. Я хочу, чтобы люди смотрели и знали, что они не должны менять словарь в любом случае. Как и у меня с константной переменной.