何が起こっているのかわかりません。次の基本クラスがあります。
public class MyRow : IStringIndexable, System.Collections.IEnumerable,
ICollection<KeyValuePair<string, string>>,
IEnumerable<KeyValuePair<string, string>>,
IDictionary<string, string>
{
ICollection<string> IDictionary<string, string>.Keys { }
}
そして、私はこの派生クラスを持っています:
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) { }
}
}
なぜそのエラーが発生するのですか? 「'MyNamespace.MyRow' には 'Keys' の定義が含まれていません」. どちらのクラスもMyNamespace
名前空間にあります。this.Keys
内からandにアクセスしようとbase.Keys
しましたが、どちらも機能しませんMySubRow
。Keys
プロパティをpublic
inとしてマークしようとしましMyRow
たが、「修飾子 'public' はこのアイテムには無効です」というエラーが表示されました。これは、インターフェイスを実装する必要があるためだと思います。