Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字典覆盖<;K、 V>;。密钥收集_C#_.net_Dictionary_Overriding - Fatal编程技术网

C# 字典覆盖<;K、 V>;。密钥收集

C# 字典覆盖<;K、 V>;。密钥收集,c#,.net,dictionary,overriding,C#,.net,Dictionary,Overriding,我试图从字典继承,但我的问题是,当查询Dictionary.key时,我想覆盖它们。(即KeyCollection)的 如何解决这个问题 谢谢 封装字典 及 实现IDictionary 或 注: IDictionary.Keys具有类型ICollection Dictionary.Keys具有类型Dictionary.KeyCollection,但它被标记为sealed,因此您将无法继承它,因此选项1看起来更现实 我肯定会推荐您的第一个选项(封装字典并实现IDictionary),否则

我试图从
字典继承
,但我的问题是,当查询Dictionary.key时,我想覆盖它们。(即KeyCollection)的

如何解决这个问题

谢谢

  • 封装
    字典

  • 实现
    IDictionary

注:

  • IDictionary.Keys
    具有类型
    ICollection

  • Dictionary.Keys
    具有类型
    Dictionary.KeyCollection
    ,但它被标记为
    sealed
    ,因此您将无法继承它,因此选项1看起来更现实

我肯定会推荐您的第一个选项(封装
字典
并实现
IDictionary
),否则当您将字典强制转换为
IDictionary
时,您会发现您的
属性由于使用了
新的
关键字而被忽略。
public new YourType Keys
{
    get
    {
        return yourVersion;
    }
}