投稿者 よねKEN  (社会人) 投稿日時 2008/10/14 22:24:59
こんにちは。
うたひこさんの回答とかぶる部分は省いて、制約についての補足情報を掲載します。

「Visual Basic におけるジェネリック型」より引用。
http://msdn.microsoft.com/ja-jp/library/w256ka79.aspx

>・型引数は、1 つまたは複数のインターフェイスを実装する。
>
>・型引数は、クラスの型そのものであるか、最大 1 つのクラスを継承する。
>
>・型引数はパラメータなしのコンストラクタを公開し、そのコンストラクタからオブジェクトを作成するコードで使用できるようにする。
>
>・型引数は、常に参照型である。または、常に値型である。

と説明があります。つまり、型引数の制約に指定できるのは以下の制約かその組合せだけです。

(1) あるインターフェースを実装していること
(2) あるクラス自身かそのクラスを継承していること
(3) 引数無しのコンストラクタを持つこと
(4) 参照型であること、または、値型であること

数値のみという条件は、(1)~(4)及びその組合せで表現できませんので実現できません。
例のコードでは実際には数値のみという条件ではなく、BitConverter.GetBytesメソッドの
引数として妥当かどうかという条件になっており、BitConverter.GetBytesメソッドのオーバーロード
の引数に(1)~(4)の観点で共通したルールを見出すことはできませんので、
例のようなコードは実現できません。