Vb.net 字典参数-强类型键,泛型类型值?

Vb.net 字典参数-强类型键,泛型类型值?,vb.net,dictionary,generics,Vb.net,Dictionary,Generics,我正在向类传递一个类型参数。我希望此类型是一个具有键类型“Date”和值类型(可以是任何类型)的字典,如下面的类定义中所示: Public Class MyClass(Of T As Dictionary(Of Date, Object)) 其中,在上述情况下,“Object”是另一种泛型类型,在声明类的实例时,它可能是整数、字符串、小部件等。但是,字典中的键必须始终是“Date”类型。例如,以下任一项都是可以接受的: Dim classInstance1 as MyClass(Of Dict

我正在向类传递一个类型参数。我希望此类型是一个具有键类型“Date”和值类型(可以是任何类型)的字典,如下面的类定义中所示:

Public Class MyClass(Of T As Dictionary(Of Date, Object))
其中,在上述情况下,“Object”是另一种泛型类型,在声明类的实例时,它可能是整数、字符串、小部件等。但是,字典中的键必须始终是“Date”类型。例如,以下任一项都是可以接受的:

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的密钥类型不是“日期”

或者,有没有这样的方法:

Public Class MyClass(Of T)
…这样,对于这个类,“T”将始终表示“Dictionary(Of Date,T)”


我不知道如何让它工作-非常感谢任何帮助。

传入第二个泛型类型,它可以用作字典的值类型:

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

End Class
然后像这样的瞬间:

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

谢谢是的,我想到了,但是我尝试这样做的全部原因是,当类被实例化时,只需要发送一个类型作为参数。这个类还实现了一个只传递了一个泛型类型的接口,所以我认为这是行不通的。一个类可以实现一个只传递了一个泛型类型的接口,而它本身却有两个泛型类型。为什么还要在类型定义中提到
Dictionary
?您只需要
公共类MyClass(Of T)
和一个
类型的私有变量Dictionary(Of Date,T)
。谢谢,好主意。当我尝试实现时,如下所示,由于某些原因不起作用:那么到底是什么原因呢?声明代码:Private Property localType as Type=GetType(Dictionary(Of Date,t))Private Property dictionaryInstance as localType…在第二行生成编译错误“Type'localType'not defined”,为什么要这样做?它是
私有财产字典作为字典(日期,T)