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 回答