3

たとえば、私は ( non-static) クラスを持っていますFoo<T>

bar()のメソッドを追加したいのですがFoo、このメソッドは に対してのみ機能するはずですFoo<int>

型制約をオーバーロードできないため、別のクラス
で拡張メソッドを作成する必要がありますか?staticbar(this Foo<int> myFoo)

4

1 に答える 1

3

基本的に、はい。C# (および一般的な CLR) は、C++ で知られているテンプレートの特殊化をサポートしていません。

型パラメーターは、クラスの実装が実際の型をまったく気にしない場合に使用することを意図しています。

別の方法として、ランタイム チェックを追加して、メソッドが でのみ呼び出されていることを確認しtypeof(T) == typeof(int)ます。

于 2012-07-16T20:42:28.790 に答える