Je ne suis pas sûr de ce qui se passe. J'ai la classe de base suivante:Propriété C# non disponible dans la classe dérivée
public class MyRow : IStringIndexable, System.Collections.IEnumerable,
ICollection<KeyValuePair<string, string>>,
IEnumerable<KeyValuePair<string, string>>,
IDictionary<string, string>
{
ICollection<string> IDictionary<string, string>.Keys { }
}
Et puis j'ai cette classe dérivée:
public class MySubRow : MyRow, IXmlSerializable, ICloneable,
IComparable, IEquatable<MySubRow>
{
public bool Equals(MySubRow other)
{
// "MyRow does not contain a definition for 'Keys'"
foreach (string key in base.Keys) { }
}
}
Pourquoi dois-je obtenir cette erreur? "'MyNamespace.MyRow' ne contient pas de définition pour 'Keys'". Les deux classes sont dans l'espace de noms MyNamespace
. J'ai essayé d'accéder à this.Keys
et base.Keys
et aucun ne fonctionne depuis MySubRow
. J'ai essayé de marquer la propriété Keys
comme public
dans MyRow
mais j'ai obtenu "Le modificateur 'public' n'est pas valide pour cet article", je pense qu'il est nécessaire d'implémenter une interface.
L'OP accède au membre, ne cherche pas à mettre en œuvre il – JaredPar
@Jared: Regardez son premier cours. La propriété est implémentée là, et c'est fait explicitement. –
@Adam, gotcha, manqué l'implémentation explicite – JaredPar