2011-01-07 8 views
1

は、以下のジェネリックを考えてみましょう:C#ジェネリック型制約 - 型パラメータが同じにならないようにしますか?

class Foo<T, U> {} 

は、同じ型であることから、TおよびUを防止することが可能ですか?この質問は好奇心から生まれたものです。

+0

大量の追加制約(例えば、T:class、U:struct、または異なる継承階層)を課している回答を探していないと仮定します: –

+0

コンパイル時ではありません。しかし、明らかに例外を介して実行時にそれを行うことができます:) – digEmAll

+0

それは思想的な実験です。 1つの答えで提案された静的コンストラクタは面白いです。 – Amy

答えて

1

いいえ、そんなことはありません。しかし、テンプレートmetaprogramming(例えばD)を使って他の言語に目を向けたいと思うかもしれません - それらはgenericsのはるかに強力な、コンパイル時の変種です。

関連する問題