Object obj = new System.Collections.Generic.Dictionary(); Assert.IsTrue(obj is System.Collections.IDictionary); って、そういうことか。 抽象的に扱いたい場合(フレームワーク内部など)は、 Genericじゃない方で扱えってことか... でも、...ってことは、自分でGenericクラスを作ったときに、 もし、そのクラスを抽象的に扱いたい場合は、NonGenericなインターフェースも 一緒に作って実装してあげないとダメなんじゃないんでしょうか!? そはれすごーく面倒です。でも今それしか抜け道が見当たらない。 C#のGenericは実行時もその情報が残ってて、実行時チェックを行うのですが、 それが「堅すぎて」逆にやりづらい部分が出てきている感じがします。