質問

私は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

ホープ、このことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top