小编典典

如何确定一个类型是否实现了特定的泛型接口类型

all

假设以下类型定义:

public interface IFoo<T> : IBar<T> {}
public class Foo<T> : IFoo<T> {}

当只有重整类型可用时,如何确定该类型是否Foo实现了泛型接口?IBar<T>


阅读 60

收藏
2022-05-22

共1个答案

小编典典

通过使用 TcKs 的答案,也可以使用以下 LINQ 查询来完成:

bool isBar = foo.GetType().GetInterfaces().Any(x =>
  x.IsGenericType &&
  x.GetGenericTypeDefinition() == typeof(IBar<>));
2022-05-22