私は、型を取る汎用静的クラスを使用して C# Web サービスで作業しています。なぜこれがコンパイルされないのか疑問に思っていました:
Type type1 = typeof(MySnazzyType);
Assert.AreEqual(0, ConnectionPool_Accessor<type1>._pool.Count);
次のエラーが発生します。
型または名前空間名 'type1' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)
type1
そして、コードの 2 行目にカーソルを合わせると、ReSharper に「タイプまたは名前空間名が必要です」と表示されます。まあ、タイプですtype1
!型の変数ですType
! 私がそうしてもうまくいきません:
Type type1 = typeof(MySnazzyType);
Assert.AreEqual(0, ConnectionPool_Accessor<typeof(type1)>._pool.Count);
私は自分の型をいくつかの異なる変数に割り当て、毎回Type
入力するのではなく、それらをさまざまな汎用静的クラスのテストに使用することを望んでいました。MySnazzyType
任意のアイデア、または私はやることにこだわっています:
Assert.AreEqual(0, ConnectionPool_Accessor<MySnazzyType>._pool.Count);
編集:明確にするために、ジェネリッククラスでMySnazzyType
はなく、ジェネリッククラスから継承しません。ここで唯一のジェネリック クラスはConnectionPool_Accessor
.
Pavel のコメント「本質的に、あなたの問題は C# が静的に型付けされた言語であるということです」のおかげで、私は Ruby が私を甘やかしてきたことを今知っています。;)