提问人:Eiconic 提问时间:7/8/2023 更新时间:7/8/2023 访问量:35
为什么编译器选择一般重载而不是特定重载?
Why does compiler select a general overload than a specific overload?
问:
事情是这样的,我有两个重载用于接受和的方法。现在,在大多数情况下,编译器在对对象调用时几乎总是选择适当的重载。IDictionary<T,K>
IEnumerable<T>
但有时当字典变得有点复杂时,比如,
IReadOnlyDictionary<CustomClassA<CustomClassB>, IOrderedEnumerable<CustomClassC<CustomClassD>>>
编译器只是为 选择重载,可能是因为它更简单。IEnumerable<T>
我确实知道将对象显式转换为字典时间可能会解决问题,但是请注意,这些重载也是递归的,例如如果存在,则调用重载方法将执行,当找到列表时,它也会转到另一个重载。Dictionary<List<int>> obj
此外,还实现了 IOrderedEnumerable 重载。
答: 暂无答案
评论
IReadOnlyDictionary
不继承自 ,但继承自IDictionary
IEnumerable
IReadOnlyDictionary
KeyValuePair
IReadOnlyDictionary
IDictionary
IReadOnlyDictionary
IReadOnlyDictionary
KeyValuePair