c# - 演员词典到 IReadOnlyDictionary?
问题描述
我们可以很容易地做到这一点:
List<Value> list;
IReadOnlyList<IValue> List => list;
但是我们怎样才能对 IReadOnlyDictionary 做同样的事情呢?
Dictionary<Key, Value> dict;
IReadOnlyDictionary<Key, IValue> Dict => dic; //impossible
解决方案
这是因为IReadOnlyList
是协变的:
public interface IReadOnlyList<out T> {...}
而IReadOnlyDictionary
不是:
public interface IReadOnlyDictionary<TKey,TValue> {...}
推荐阅读
- swift - 通过引用改变变量的值
- qt - Q_GADGET 具有值类型语义?
- java - 使用弹簧靴的多个构造函数注入歧义
- g1gc - 为什么MemoryPoolMXBean.MemoryUsage.getUsed for old generation的结果在G1下没有混合GC的情况下会减少?
- powershell - 有没有办法结合 -ForegroundColor 和 | 写主机语句中的输出文件?
- javascript - 用大对象响应更新状态
- android - 从具有多对多关系的房间查询
- json - Apple Pay 支付令牌示例
- c# - 如何获得具有可变步数的可枚举范围
- php - 表单 Asyncronus Ajax 调用到 php 页面