首页 > 后端开发 > C++ > 如何确定重整类型是否实现 C# 中的通用接口?

如何确定重整类型是否实现 C# 中的通用接口?

Patricia Arquette
发布: 2025-01-07 07:13:46
原创
955 人浏览过

How Can I Determine if a Mangled Type Implements a Generic Interface in C#?

根据 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板