我有一个通用类
public class Mapper<K, L, V> : Dictionary<K, V>
当我实例化为
Mapper<string, string, MapSource> Map= new Mapper<string, string, MapSource>();
并尝试做
Map["..."].
随带的编译器错误消息返回
该调用在以下方法或属性之间是不明确的:'MinorTesting.XML.Sourcer.Mapper.this [L]'和'MinorTesting.XML.Sourcer.Mapper.this [K]'
我如何解决此问题以删除编译。
鲍勃
最佳答案
MultiKeyDictionary
是什么样子?在哪里/如何使用?
看起来MultiKeyDictionary
提供了两个索引器,this[L]
和this[K]
。当L
和K
相同时,编译器将无法在这些索引器之间进行选择,因为它们实际上都已成为this[string]
。
一种选择是在这种情况下提供显式方法来代替索引器使用:例如GetByKey(K)
和GetByValue(L)
或类似方法。
关于c# - 如何在泛型类中识别匹配类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325439/