J'ajoute des fonctionnalités à une collection .Net existante. Pour ce faire, je remplace plusieurs fonctions. Je n'ai pas pu remplacer la valeur de retour du retour de tableau de base dans la collection. Par exemple, si j'appelle emailMessage.To [i], il ne renvoie pas la valeur correcte, mais si j'appelle emailMessage.Item (i), il renvoie la valeur correcte. Voici le code de ma classe. De quoi ai-je besoin pour remplacer pour corriger la première erreur?Remplacer l'index Retour dans la collection C#
namespace EmailService
{
public class MailAddressCollection : System.Net.Mail.MailAddressCollection
{
public MailAddressCollection() : base()
{
}
public void Add(MailAddress Address)
{
base.Add(Address);
}
public MailAddress Item(int index)
{
return (MailAddress)(base.Items[index]);
}
}
}
double possible [Comment surcharger l'opérateur-support carré en C#?] (Http://stackoverflow.com/questions/287928/how-do-i-overload- the-square-bracket-operator-in-c) –
Voir cette question: [Comment surcharger l'opérateur de carré en C#?] (http://stackoverflow.com/questions/287928/how-do-i -overload-the-square-bracket-operator-in-c) –
Je pense qu'il est préférable d'utiliser la composition au lieu de l'héritage dans ce cas pour adhérer au [principe de substitution de Liskov] (http://en.wikipedia.org/wiki/Liskov_substitution_principle) –