Domanda

E 'buono da utilizzare tale approccio per mantenere sola lettura lista di stringhe, per esempio, un elenco di campi in ADO.NET.

var list = new System.Collections.ObjectModel.ReadOnlyCollection<string>(
           new List<string>(4) { "type", "currency", "date", "amount" });

O questa è una soluzione superfluo?

È stato utile?

Soluzione

Dipende dalla vostra posizione. ReadOnlyCollection funziona molto bene quando si dispone di un elenco modificabile interna che deve essere dato a qualche altro codice che non è consentito modificare l'elenco. Per il codice semplice, utilizzando ReadOnlyCollection è probabilmente eccessivo. Se il codice è grande e c'è un rischio qualche altro programmatore (o, in fondo alla strada) potrebbe accidentalmente tentare di modificare l'elenco, allora potrebbe essere la pena.

In breve:. Non utilizzare ReadOnlyCollection idiomaticamente, usarlo quando ha senso

Altri suggerimenti

Se possibile, preferiscono controllo di tipo statico. IEnumerable<string> è di sola lettura.

IEnumerable<string> list = new List<string> { "type", "currency", "date", "amount" };

codice successivo non può modificare l'elenco, e gli errori saranno catturati al momento della compilazione -. A meno di utilizzare la riflessione, ma poi di riflessione potrebbe essere utilizzato per eludere i controlli di runtime e

Tornando alla NET 2.0, la classe List aveva un metodo AsReadOnly(). Quando farmaci generici è arrivato, il List<T> ottenuto troppo. Ecco il MSDN pagina di riferimento .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top