Ho una classe in C# che contiene un dizionario, che voglio creare e garantire nulla come aggiunto, modificato o rimosso da questo dizionario purché esista la classe che lo contiene.const dizionario in C#
readonly in realtà non aiuta, una volta ho provato e ho visto che posso aggiungere articoli dopo. Solo per esempio, ho creato un esempio:
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);
}
}
voglio che il metodo Add non lavorare. Se possibile, non voglio nemmeno compilare. Eventuali suggerimenti?
In realtà, sono preoccupato perché è un codice che sarà aperto a molte persone per cambiare. Quindi, anche se nascondo il metodo Add, sarà possibile per qualcuno "innocentemente" creare un metodo che aggiunge una chiave o ne rimuove un'altra. Voglio che le persone guardino e sappiano che non dovrebbero cambiare il dizionario in alcun modo. Proprio come ho con una variabile const.
Strani requisiti suggeriscono che il tuo progetto presenta problemi. Potresti voler ripensare a ciò che stai tentando qui. Altrimenti, puoi facilmente creare la tua implementazione che fa questo. – Will
È possibile implementare il proprio dizionario. Domanda simile: http://stackoverflow.com/questions/35002/does-c-have-a-way-of-giving-me-an-immutable-dictionary –