leo*_*ora 2 c# generics collections interface
我有一个继承通用字典和接口的类
public class MyDictionary: Dictionary<string, IFoo>, IMyDictionary
{
}
Run Code Online (Sandbox Code Playgroud)
问题是这个类的消费者正在寻找界面的'.Keys'和".Values"属性,所以我补充说:
/// <summary>
///
/// </summary>
ICollection<string> Keys { get; }
/// <summary>
///
/// </summary>
IEnumerable<IFoo> Values { get; }
Run Code Online (Sandbox Code Playgroud)
到界面.
现在,实现也需要这个,但是当我实现这些时,我得到这个错误:
"关键字new是必需的,因为它隐藏了属性键......"
所以我需要做什么.我应该在这些获取属性前添加"新"吗?
另一种选择是将接口上的类型更改为:
public interface IMyDictionary
{
/// <summary>
///
/// </summary>
Dictionary<string, IFoo>.KeyCollection Keys { get; }
/// <summary>
///
/// </summary>
Dictionary<string, IFoo>.ValueCollection Values { get; }
}
Run Code Online (Sandbox Code Playgroud)
这样,接口已经由字典实现,省去了再次实现属性的麻烦,并且它不会隐藏或覆盖原始实现.
归档时间: |
|
查看次数: |
7935 次 |
最近记录: |