ないものねだり(ジェネリック編)
ジェネリックの型制約で、「 XXX と云うプロパティを持つクラスであること」なんていう制約を付けたい。。。
とある共通メソッドを作る際、共通メソッドを格納するプロジェクトから参照出来ない*1 DLL に実装されているクラスのインスタンスを引数に受け取る必要が生じまして。
実際に共通メソッド内で必要なのは、その型の特定プロパティ( Setter/Getter 両方が必要)だけだったので、クラスを隠蔽したままプロパティにアクセス出来ればなぁ、と。 ^^;
Public Shared Sub Hoge(Of TObject As {XXX と云うプロパティを持つクラス})(ByVal value As TObject) Dim fuga = value.XXX ... End Sub
みたいな事が出来ればラクなのに><
リフレクションを使えば出来るのは判っているのですが、 1 トランザクション内でこのメソッドを呼ぶ回数が結構多いので、出来ればリフレクションは避けたいのです。。。
……で、結局共通メソッド化自体を諦めましたとさ。 T-T
# ダックタイピングが出来ればいいんですけどねぇw
*1:大人の事情によります :p