私は電話したいいくつかの異なるリストを持っています。それらはすべてクラスのための同じフォーマットを持っています: id、value、description、order。たくさんのリストのすべてを返すクラスを作成する代わりに、ジェネリックを使い、返すべきリストの種類を伝えたいと思いました。しかし、私はどのようにクラスを生成するのか分かりません。ジェネリックを使用してList(t)のカスタムクラスを生成できますか?
ここに私の呼び出しコードの関数の2つの例があります。これは、リストの種類を示す必要がありますし、ストアドプロシージャは、データを取得するために使用:
Public Function getTheEyeColors()
Dim glEyeColors As New GenericList
Return glEyeColors.GetALList(Of EyeColor)("GetAllEyeColors")
End Function
Public Function getTheHairColors()
Dim glHairColors As New GenericList
glHairColors.GetALList(Of HairColor)("GetAllHairColors")
End Function
そして、ここでは、私は、一般的なリストを構築するために使用しようとしていますコードです...
Public Function GetALList(Of t)(ByVal storedproc As String) As List(Of t)
Dim lstGenericList As New List(Of t)
Dim oGenericListItem As t
Dim oProviderFactory As New ProviderFactory
Dim oConnection As DbConnection
Dim oReader As System.Data.IDataReader
Dim oFactory As DbProviderFactory
Dim oFileMgt As New FileMgt
Dim oCmd As DbCommand
oFactory = oProviderFactory.GetFactory
oConnection = oProviderFactory.GetProviderConnection(oFactory)
oCmd = oConnection.CreateCommand
oCmd.CommandType = CommandType.StoredProcedure
oCmd.CommandText = storedproc
Using (oConnection)
oConnection.Open()
oReader = oCmd.ExecuteReader()
While oReader.Read
HERE IS WHERE I AM NOT SURE HOW TO POPULATE THE EYECOLOR OR HAIRCOLOR CLASS
lstGenericList.Add(oGenericListItem)
End While
oConnection.Close()
End Using
Return lstGenericList
End Function
+1私にそれを打つ。問題のVB構文は '(Of T As ICommonInterface)'、FYI – Welbog
そしてパラメータのないコンストラクタ1ですか?ちょうど答えを編集して、代わりにVBの構文を含めることができます:) –