Diciamo che ho una classe C#:In C#, un metodo può restituire l'elenco in modo tale che i client possano solo leggerlo, ma non scrivere su di esso?
class Foo
{
private List<Bar> _barList;
List<Bar> GetBarList() { return _barList; }
...
}
Un client può chiamare:
var barList = foo.GetBarList();
barList.Add(...);
C'è un modo per rendere il metodo Add
falliscono perché solo una versione di sola lettura del _barList
è tornato?
Ricordare che anche se non è possibile aggiungere o rimuovere oggetti dall'elenco, è comunque possibile modificare gli oggetti nell'elenco (impostare valori su proprietà, metodi di chiamata che modificano lo stato). –