Visual Basic .NET Language
ジェネリックス
サーチ…
ジェネリッククラスを作成する
ジェネリック型は、異なるデータ型に対して同じ機能割り当てにアクセスできるように作成されています。
Public Class SomeClass(Of T)
Public Sub doSomething(newItem As T)
Dim tempItem As T
' Insert code that processes an item of data type t.
End Sub
End Class
ジェネリッククラスのインスタンス
異なる型の同じクラスのインスタンスを作成することで、そのクラスのインタフェースは与えられた型に応じて変化します。
Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)
「ジェネリック」クラスを定義する
ジェネリッククラスは、後で指定された型に適応するクラスであり、同じ機能をさまざまな型に提供することができます。
この基本例では、汎用クラスが作成されます。これには汎用型Tを使用するサブがあります。このクラスをプログラミングするとき、Tの型はわかりません。この場合、TはObjectのすべての特性を持ちます。
Public Class SomeClass(Of T)
Public Sub doSomething(newItem As T)
Dim tempItem As T
' Insert code that processes an item of data type t.
End Sub
End Class
ジェネリッククラスを使用する
この例では、SomeClassクラスのインスタンスが2つ作成されています。与えられたタイプに応じて、2つのインスタンスは異なるインターフェースを持ちます:
Dim theStringClass As New SomeClass(Of String)
Dim theIntegerClass As New SomeClass(Of Integer)
最も有名な汎用クラスはList(of)
指定可能な型を制限する
SomeClassの新しいインスタンスに渡される可能な型は、SomeBaseClassを継承しなければなりません。これはインターフェースでもあります。 SomeBaseClassの特性は、このクラス定義内でアクセス可能です。
Public Class SomeClass(Of T As SomeBaseClass)
Public Sub DoSomething(newItem As T)
newItem.DoSomethingElse()
' Insert code that processes an item of data type t.
End Sub
End Class
Public Class SomeBaseClass
Public Sub DoSomethingElse()
End Sub
End Class
指定された型の新しいインスタンスを作成する
ジェネリック型の新しいintanceの作成は、コンパイル時に行うことができます。
Public Class SomeClass(Of T As {New})
Public Function GetInstance() As T
Return New T
End Function
End Class
または限られたタイプの場合:
Public Class SomeClass(Of T As {New, SomeBaseClass})
Public Function GetInstance() As T
Return New T
End Function
End Class
Public Class SomeBaseClass
End Class
baseClass(指定されていない場合はObject)には、コンストラクターの少ないパラメーターが必要です。
これは、 リフレクションによって実行時に行うこともできます
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow