c# - 如何在泛型类中识别匹配类型

标签 c# generics

我有一个通用类

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]。当LK相同时,编译器将无法在这些索引器之间进行选择,因为它们实际上都已成为this[string]

一种选择是在这种情况下提供显式方法来代替索引器使用:例如GetByKey(K)GetByValue(L)或类似方法。

关于c# - 如何在泛型类中识别匹配类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325439/

相关文章:

c# - ASP.NET 异步和等待

Swift:equatable 字典不能传递给泛型函数

c# - 不知道类型时如何指定类型化变量

c# - 使用 JavaScript 更改页面状态,回发时会调用旧状态

c# - 帮助对 C# 中的文本字符串进行正则表达式验证

c# - HttpClient、Azure 和 System.Net.Sockets.SocketException : what to do?

c# - 如何编写一个可以使用泛型从任何类输出数据的方法?

generics - 填充了类型参数的泛型类型的术语

c# - 在事件声明中正确使用泛型

c# - 在 C# 中实现试用应用程序