字典参数 - 强类型键,通用类型值?

时间:2017-04-12 19:24:50

标签: vb.net dictionary generics

我正在将类型参数传递给类。我希望这个类型是一个字典,其键类型为“Date”,值类型可以是任何类型,如下面的类定义所示:

Public Class MyClass(Of T As Dictionary(Of Date, Object))

其中,在上面,'Object'是另一种泛型类型,当声明类的实例时,可能是Integer,String,Widget等。但是,字典中的键必须始终是类型'日期'。例如,以下任何一种都是可以接受的:

Dim classInstance1 as MyClass(Of Dictionary(Of Date, String))
Dim classInstance2 as MyClass(Of Dictionary(Of Date, List(Of Integer)))

但这不会:

Dim classInstance3 as MyClass(Of Dictionary(Of String, Double)

...因为提供给classInstance3的Key类型不是'Date'。

或者,有没有办法做这样的事情:

Public Class MyClass(Of T)

...这样的“T”,对于这个类,总是意味着“Dictionary(Of Date,T)”?

我无法弄清楚如何让它发挥作用 - 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

传入第二种泛型类型,可以将其用作词典的值类型:

Public Class YourClass(Of V, T As Dictionary(Of Date, V))

End Class

然后像这样实例化:

Dim objInstanceOfYourClass As New YourClass(Of String, Dictionary(Of Date, String))