|
2014/08/14(Thu) 19:09:17 編集(投稿者)
■No73057 (Tom さん) に返信 > なるほど、Tをそのまま使わずに、<Hoge><Fuga>などを使ってキャストして渡せば十分ですね。 > 安直とおっしゃいますが、自分には完全に盲点でございました!(^^;
対象のメソッドが typeof(T) から何かするような処理が書かれている場合、私が書いた回避コードではまずい可能性はあります。 もっとも、static メソッドのようですし、static フィールドを持っていない限りは大丈夫だとは思いますが…。 (Console.WriteLine とか、決め打ちされた静的な出力に書き込むような振る舞いなら、大丈夫じゃないかも)
また、私が書いたように <Hoge>, <Fuga> 固定でよいなら、そもそもジェネリックである必要はないのかもしれません。 設計・実装者のミスでジェネリックになってしまっているだけなのか、それとも T に基づいてリフレクションを使った何かが埋め込まれているか、それは第三者にはわからないので判断がつきません。
// ちなみに「キャスト」ではないっす。オブジェクトを型変換しているわけではないため。
|