Son typique d'exposer les structures de données internes en tant que propriétés à votre classe affaires. Mais lorsque nous devons exposer des structures de type tableau (comme les règles Rule >), nous pourrions rencontrer un problème de mauvaise utilisation (comme dans l'option 1). Il est suggéré d'exposer le clone de telles structures de données en tant que propriétés, de sorte que la structure interne ne soit pas perturbée.Exposer la structure de données de type tableau à l'aide des propriétés
Est-ce que quelqu'un a une solution bien établie pour cela?
public class Rule
{
}
public class RulesManager
{
List<Rule> rules = new List<Rule>();
public List<Rule> Rules
{
get { return rules; }
set { rules = value; }
}
public void Add(Rule r)
{
rules.Add(r);
// Do something else after add;
}
public void Delete(Rule r)
{
rules.Remove(r);
// Do something else after delete;
}
}
public class CallingCode
{
public static void Main()
{
RulesManager r = new RulesManager();
// Option 1
r.Rules.Add(new Rule());
// Option 2
r.Add(new Rule());
}
}
Mais ma définition passera de List à ReadOnlyCollection , rt? –
NileshChauhan
Vous avez déjà entendu parler de la coulée de type? :-) Je vais clarifier ... –