さて、私は例プロジェクトでvb.netのジェネリックスを使いこなしています。現時点では、次のようになります。vb.netのコンストラクタとのインターフェイスを使用する一般的な関数を教えてください
私はIRow(およびそれをDatarowとして実装するクラス)というインターフェースを持っています。
第2のインターフェースは次のようになりICanGetByRowある:
Public Interface ICanGetByRow(Of T)
Function GetByRow(ByVal Row As IRow) As T
End Interface
関数は単にIRowを取り、十分に容易T.厥に変換します。今、私は簡単にアクセスできるように、IRowインターフェイスに関数を実装して、行をとりICanGetByRowに変換したいと考えています。
私のインターフェイスは、あなたはおそらく問題を見ることができ、以下の機能
Function GetObj(Of T As ICanGetByRow(Of T))() As T
によって強化されました。私はこのようにそれを実装した場合:
Public Function GetObj(Of T As ICanGetByRow(Of T))() As T Implements IRow.GetObj
Dim foo As New T
foo.GetByRow(Me)
Return foo
End Function
私は新しいTを構築することは許されないだろう、と私はそれが私のインタフェースがコンストラクタを持っている一般的な機能を伝えることで動作するようにしようとしたとき、彼はいないだろうもうGetByRowを呼び出させてください。
Public Function GetObj(Of T As New, ICanGetByRow)() As T Implements IRow.GetObj
Dim foo As New T
foo.GetByRow(Me)
Return foo
End Function
は、私は私の問題は、私はどのようにコンストラクタを持っている、それは(Tの)ICanGetByRowを取得する汎用的な機能を伝えるには考えているということだと思う、と私はおそらく間違ったことをやっています。
ありがとう、それは私が探していたものでした。 – Lambda