6
タイプが特定のジェネリックタイプであるかどうかを調べる必要があります。2つのジェネリックタイプが等しいかどうか確認してください
class MyType<T> {}
var instance = new MyType<int>();
var type = instance.GetType();
このチェックは機能しませんが、これを確認してください。タイプがその汎用タイプのものであれば、T
に関係なく。
type == typeof(MyType<>)
これは機能しますが、汚れています。それはFullName
ではないので間違っている可能性もあります。
type.Name == typeof(MyType<>).Name
私はこれを行う方法があると思っていますが、見つけられません。 IsAssignableFrom
を使用すると動作しません。なぜなら、現在の型が親ではなく、現在の型が等しいかどうかを知る必要があるからです。