0

次の場合:

Public MustInherit Class A(Of X As A(Of X, Y), Y As B(Of X, Y))
End Class

Public MustInherit Class B(Of X As A(Of X, Y), Y As B(Of X, Y))
End Class

Public Class D

    Private _v As A(Of X As A(Of X, Y), Y AS B(Of X, Y))        

    Public Sub Initialize(Of X As A(Of X, Y), Y As B(Of X, Y))(ByVal v As A(Of X, Y))
        _v = v
    End Sub

End Class

メンバー変数_vを定義することは可能ですか?メンバー変数を定義するときに「As」キーワードを使用できないように見えるため、上記はコンパイルされず、コンパイラーは型パラメーターが少なすぎると文句を言います。

4

1 に答える 1

3

ジェネリック型パラメーターでの使用はAs、制約を確立することです。これは、型パラメーターが定義されている時点でのみ実行できます。あなたの場合_v、おそらく既存の型パラメータを使用して、特定の型のインスタンスを宣言しています。 As新しい型パラメータを定義していないため、現時点では合法ではありません。

のパラメータを定義しD、の宣言でそれらを使用します_v

于 2013-03-18T16:32:05.727 に答える