我有一个继承通用字典和接口的类
public class MyDictionary: Dictionary, IMyDictionary { }
问题是这个类的消费者正在寻找界面的'.Keys'和".Values"属性,所以我补充说:
////// /// ICollectionKeys { get; } /// /// /// IEnumerableValues { get; }
到界面.
现在,实现也需要这个,但是当我实现这些时,我得到这个错误:
"关键字new是必需的,因为它隐藏了属性键......"
所以我需要做什么.我应该在这些获取属性前添加"新"吗?
另一种选择是将接口上的类型更改为:
public interface IMyDictionary { ////// /// Dictionary.KeyCollection Keys { get; } /// /// /// Dictionary.ValueCollection Values { get; } }
这样,接口已经由字典实现,省去了再次实现属性的麻烦,并且它不会隐藏或覆盖原始实现.