根据 Mungled 类型确定通用接口的实现
在只有表示类的损坏类型可用的情况下,确定它是否实现通用界面可能具有挑战性。考虑以下示例:
public interface IFoo<T> : IBar<T> {} public class Foo<T> : IFoo<T> {}
问题出现了:我们如何确定类型 Foo 是否实现了通用接口 IBar
解决方案:
解决此查询的一种方法是利用 C# 中提供的 IsGenericType 和 GetGenericTypeDefinition 方法。这些方法允许检查和操作泛型类型。
// Assuming 'foo' represents the mangled type of 'Foo<T>' bool isBar = foo.GetType().IsGenericType && foo.GetType().GetGenericTypeDefinition() == typeof(IBar<>);
此代码评估重整类型是否为泛型,并将其泛型类型定义与预期的接口类型定义 typeof(IBar) 进行比较。如果两个条件都满足,则 isBar 变量设置为 true,表示该类型实现了通用接口。
以上是如何确定重整类型是否实现 C# 中的通用接口?的详细内容。更多信息请关注PHP中文网其他相关文章!