Sembra una scelta di design strana, perché un Dictionary
e un ImmutableDictionary
sono molto diversi dal punto di vista della scrittura. (In termini di lettura, entrambi implementano IReadOnlyDictionary
, che va bene *)
In effetti, l'attuale implementazione di IDictionary<TKey, TValue>.Add()
nella classe ImmutableDictionary
genera un NotSupportedException
(vedi qui ).
Quindi, qual era il punto nel fare questo? Se un metodo restituisce un IDictionary
che è in effetti un ImmutableDictionary
, avrai alcuni problemi durante l'aggiunta di elementi, ad esempio.
* tranne per il nome dell'interfaccia, che è oggetto di dibattito