Dictionary 通过ICollection 接口继承,但不实现所有成员
Dictionary Inherited through ICollection interface, but don't implement all the members
在我当前的实现中,我试图创建由 IDictionary<string, Object>
接口继承的自定义 class。
实施时,我必须实施以下属性
IsReadOnly { get; } part of ICollection<KeyValuePair<TKey, TValue>> interface.
因此,在执行此操作时,我遇到了以下情况,
我在 Dictionary<TKey, TValue>
(.NET 内置 class)class 中没有看到 IsReadOnly
属性,那么 属性 ReadOnly
的实现不存在于 Dictionary
class 中,因为此 class 也通过 ICollection<KeyValuePair<TKey, TValue>>
接口继承。
我也有关于 CopyTo
方法的相同查询。
这只是我的概念性问题。
属性 是 在 Dictionary<TKey, TValue>
上实现的。你在你的实例上看不到它的原因是 how the member is implemented:
bool ICollection<KeyValuePair<TKey,TValue>>.IsReadOnly {
get { return false; }
}
member-name 前面的限定符表示explicit implementation。这意味着只有当 明确地 通过强制转换引用该类型时,您才能访问该成员:
var readOnly = ((ICollection<MyType>)myMap.IsReadOnly;
在我当前的实现中,我试图创建由 IDictionary<string, Object>
接口继承的自定义 class。
实施时,我必须实施以下属性
IsReadOnly { get; } part of ICollection<KeyValuePair<TKey, TValue>> interface.
因此,在执行此操作时,我遇到了以下情况,
我在 Dictionary<TKey, TValue>
(.NET 内置 class)class 中没有看到 IsReadOnly
属性,那么 属性 ReadOnly
的实现不存在于 Dictionary
class 中,因为此 class 也通过 ICollection<KeyValuePair<TKey, TValue>>
接口继承。
我也有关于 CopyTo
方法的相同查询。
这只是我的概念性问题。
属性 是 在 Dictionary<TKey, TValue>
上实现的。你在你的实例上看不到它的原因是 how the member is implemented:
bool ICollection<KeyValuePair<TKey,TValue>>.IsReadOnly {
get { return false; }
}
member-name 前面的限定符表示explicit implementation。这意味着只有当 明确地 通过强制转换引用该类型时,您才能访问该成员:
var readOnly = ((ICollection<MyType>)myMap.IsReadOnly;