C++テンプレートでは、特定の型パラメータがデフォルトであることを指定できます。私。明示的に指定されない限り、タイプTを使用します。C#Genericsの "default"型パラメータへの妥当なアプローチはありますか?
これはC#で行うことができますか近似できますか?
私のようなものを探しています:だから、明示的に指定していないタイプのインスタンスがT2
こと
public class MyTemplate<T1, T2=string> {}
:
MyTemplate<int> t = new MyTemplate<int>();
は以下のようになり、本質的に:
MyTemplate<int, string> t = new MyTemplate<int, string>();
最終的に私はかなり広い範囲のテンプレートがあるケースを見ていますsedですが、追加の型パラメータを使用して拡張を検討しています。私はサブクラス化することができたと思いますが、この静脈に他の選択肢があるかどうか不思議でした。
ああ...それは理にかなっているようにあなたは、クラスのオーバーロードを作成することができます。型パラメータが一意の署名を提供する場合、型名は同じにすることができますか? – el2iot2
@ee:はい、ジェネリックはパラメータカウントで「オーバーロード可能」です。 –
@ee:そうですが、私はそれに気をつけています。これは.NETでは "合法"ですが、混乱を招く可能性があります。私はむしろ、文字列型の名前を主なジェネリッククラスと似ているようにしたいので(それは明白です)、文字列であることが明白になる名前です。 –