问题:
考虑这些类型定义:
public interface IFoo<T> : IBar<T> {} public class Foo<T> : IFoo<T> {}
目标:
如何确定类型 Foo
答案:
利用 TcKs 提出的方法,我们可以使用以下 LINQ 查询:
bool isBar = foo.GetType().GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IBar<>));
此查询检查 foo 变量的任何实现的接口是否是泛型类型及其泛型类型定义是否与IBar T 。如果存在这样的接口,则表明Foo
以上是如何确定泛型类型是否仅使用其类型名称来实现特定的泛型接口?的详细内容。更多信息请关注PHP中文网其他相关文章!