J'ai une classe avec un membre de collection. Je voudrais empêcher le code externe de modifier directement cette collection, en utilisant des méthodes (qui peuvent effectuer la validation appropriée, etc.).Motif pour forcer l'ajout à la collection via la méthode en C#
C'est plus difficile que je ne le pensais. Voici la solution que j'utilise. Pouvez-vous s'il vous plaît me dire s'il y a de meilleures façons de faire cette chose commune? Tout semble juste un peu overengineered.
using System.Collections.Generic;
using System.Collections.ObjectModel;
public class Foo
{
private List<Bar> _bars = new List<Bar>();
public ReadOnlyCollection<Bar> Bars { get { return _bars.AsReadOnly(); } }
public void AddBar(Bar bar) //black sheep
{
//Insert validation logic here
_bars.Add(bar);
}
}
Très bien. Je ne suis pas du genre à discuter avec notre Martin. – David