VB.NET嵌套的通用参数

时间:2019-03-03 10:42:13

标签: .net vb.net generics

我正在尝试编写一个适配器类,该类接受任何-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类?

0 个答案:

没有答案