私はそうのように、キーと値の両方がタイプType
のある辞書を持っている...私は何をしようとしているジェネリックでタイプのタイプを制限できますか?
private static Dictionary<Type, Type> myDict;
がFrameworkElement
から継承する唯一の可能なタイプに2つ目のType
を制限しています。私はFrameworkElement
インスタンスをstoryingないよ
注、私は次の文が真作るFrameworkElement
から派生タイプType
の唯一のストアオブジェクトにしようとしている...
var isTypeStorable = typeof(FrameworkElement).IsAssignableFrom(FooType);
は、だからそれを行うことができますか?
私は、上記(私が今やっているものです)辞書に追加する前にランタイムチェックを行うために使用できることを知っています。コンパイル時にこれを制限する機能があれば疑問です。
のために私の知る限りでは何もありません。特殊な辞書を作成し、 'Add'メソッドと' AddRange'メソッドをオーバーライドし、入力が悪い場合はスローしますが、これは実行時エラーチェックのみを提供します。おそらく工場やDIを使って、あなたの究極の目標を達成するためのよりよい方法があるのだろうかと私はほとんど疑問に思いますか?辞書の使い方について少し詳しく説明できますか? –
これは私が現在やっていることです。これは、言語の機能としての概念/機能について一般的に不思議に思っていました。 – MarqueIV
一般的な制約は役に立ちませんか? 'T:FrameworkElement'のようなもの –