Ktouth Brand. on Web

け〜くんこと K.Ktouth のだらだらした日常と突発的に作るプログラムや読み物とかの雑多サイト



[2011年07月26日]

C# のジェネリックの制約がメンドイ

2011年07月27日 08:04更新 筆者:K.Ktouth

C# の型はいわゆる値型と参照型の二つに分かれるんですが、この二つは挙動およびソースレベルでの記述が変化することが多いのです。
で、ジェネリックで表記したい時も値型、参照型の違いがあったりするし、さらには参照型に Nullable<T> 型が追加されたために各々の挙動をどうやって制御するのかという面倒な作業が(笑)

コンパイル時に制御するとなると型名を分けないといけない(型パラメータの数が同じだとバッティングする)し、内部で制御しようとすると実行時判定になってしまう、と。
こういうとき C++ のテンプレート機能(コンパイル時に展開される)がうらやましくなるねぇ……

仕方ない。ジェネリックじゃなく、T4で強引に型オーバーライドさせるしかねーか。

本日のリンク元
その他のリンク元
検索