ジェネリッククラスに制約をかけよう。
T型は何でもいけましたがあえてT型に制約をかけます。
制約をかける。
ジェネリッククラス
構文
Public Class クラス名(Of t As 制約)
End Class
複数制約をかける。
ジェネリッククラス
構文
Public Class クラス名(Of t As {制約, 制約})
End Class
制約は何種類かありますが
今回はnew制約とclass制約を解説します。
new制約はクラスに引数のないコンストラクタがあるかです。
引数のないコンストラクタとは
Public Sub New()
End Sub
こんなやつです。
class制約は参照型を指定してます。
ソース
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim sc As New newclass(Of Sclass)
Dim sc2 As New newsclass(Of Sclass)
End Sub
End Class
Public Class newclass(Of t As New)
End Class
Public Class newsclass(Of t As {New, Class})
End Class
Public Class Sclass
Public Sub New()
End Sub
End Class