我正在尝试编写一个适配器类,该类接受任何-XX:NativeMemoryTracking=summary
/ Dictionary
类类型的参数。
KeyValuePair
VB.NET是否允许这种类型的嵌套通用参数(如C ++中的模板模板参数)?如果可以,我该如何编写通用参数来接受一个?
预期用量
理想情况下,我希望能够像这样使用它:
Public Class Adapter(Of TKey As IComparable, TValue, TContainer As {IDictionary, New})
Private Structure Entry
Public Value as TValue
' Some other stuff
End Property
Private _Container As TContainer(Of TKey, Entry) ' <-- how do I make TContainer still parametrizable
Public Sub New()
_Container = New TContainer(Of TKey, Entry) ' <-- TContainer needs to be New-able
End Sub
End Class
另外
此外,还有一种方法可以实现接受Dim adapter As Adapter(Of String, String, Dictionary) ' <-- _Container will then be Dictionary(String, Entry(Of String))
类型的对象的构造函数。
TContainer(Of TKey, Entry)
我看到这种情况的唯一方法是将Public Sub New(ByVal container As TContainer(Of TKey, Entry)) '<-- use existing container
_Container = container
End Sub
公开,但是我必须做类似Entry
的事情。如果无法完成通用的Adapter(Of String, String, Adapter(WHAT_DO_I_PUT_HERE).Entry
签名,该如何引用内部的Entry
类?