ジェネリック型とジェネリッククラスに適用する拡張メソッド
-
20-08-2019 - |
質問
私はvb.netでジェネリッククラスで働いていた。
そして拡張メソッドは、タイプを指定せずに、一般的なクラスに適用することはできないようです。
私は、この一般的なクラスを持っている。
Public Class MyGeneric(Of T)
'Methods and properties go here
'
'
End Class
これはOKです。
<Extension()> _
Public Sub DoSomething(ByVal myGenericDoubleObj As MyGen(Of Double))
End Sub
これはOKでない(IDEが定義されていないと私にエラーTを与えます。)
<Extension()> _
Public Sub DoSomethingGeneric(ByVal myGenericObj As MyGen(Of T))
End Sub
これはネットの静的チェックとは何かです。
私に言って「あなたはタイプTでやってみてください何かが適合しない場合があり、私はあなたがそれを行うことができませんです。」
P.S。このすべての痛み私は、ジェネリッククラスが別のライブラリから来ているとして、そして、多くの異なる場所で使用されてきました。私は私の継承されたジェネリッククラスでこのメソッドを継承し、追加の少し警戒しています。
解決
あなたが拡張メソッド、それが動作するはずジェネリックメソッドを作る場合は、
の(Tの)すなわちdoSomethingのわずかのdoSomething(のの()instread)
<Extension()> _
Public Sub DoSomething(Of T)(ByVal myGenericObj As MyGeneric(Of T))
End Sub
ホープ、このことができます。
所属していません StackOverflow