我不確定發生了什麼事。我有以下的基類:C#屬性在派生類中不可用
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
和base.Keys
,並且都不在MySubRow
內工作。我試圖將Keys
屬性標記爲public
,MyRow
,但得到了「修飾符」public「對此項無效」,我想因爲有必要實現一個接口。
的OP正在訪問的成員,而不是試圖實現它 – JaredPar 2010-01-27 16:04:33
@Jared:看他的第一堂課。該財產在那裏實施,並且這是明確的。 – 2010-01-27 16:06:09
@亞當,gotcha,錯過了明確的執行 – JaredPar 2010-01-27 16:07:07