型が特定の汎用インターフェイス型を実装しているかどうかを判断する
次の型定義があるとします。
public interface IFoo<T> : IBar<T> {} public class Foo<T> : IFoo<T> {}
マングルされた型だけが与えられた場合、型 Foo が汎用インターフェイス IBar
LINQ クエリによるソリューション
TcKs が提案しているように、次の LINQ クエリを利用できます:
bool isBar = foo.GetType().GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IBar<>));
このクエリは、foo の実装されたインターフェイスのいずれかが、 IBar
以上が型が C# で特定の汎用インターフェイスを実装しているかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。