首页 > 后端开发 > C++ > 如何可靠地检查 C# 中的类型继承(包括基类本身)?

如何可靠地检查 C# 中的类型继承(包括基类本身)?

Linda Hamilton
发布: 2025-01-09 15:01:43
原创
521 人浏览过

How Can I Reliably Check for Type Inheritance (Including the Base Class Itself) in C#?

可靠的 C# 类型继承检查:包括基类

在C#中验证类型继承,包括类型是否是基类本身,需要仔细考虑。 标准 typeof(SubClass).IsSubclassOf(typeof(BaseClass)) 方法适用于子类,但在将类型与其自己的基类进行比较时失败(返回 false)。

解决现有方法的局限性

存在多种方法,每种方法都有局限性:

  • Type.IsSubclassOf: 仅标识子类,而不标识基类本身。
  • Type.IsAssignableFrom: 包括基类,但对于具有隐式或显式转换的不相关类型可能返回 true
  • isas 运算符: 对对象进行操作,而不是直接对 Type 对象进行操作。

稳健的解决方案:IsSameOrSubclass方法

为了克服这些限制,自定义方法提供了可靠的解决方案:

<code class="language-csharp">public static bool IsSameOrSubclass(Type potentialBase, Type potentialDescendant)
{
    return potentialDescendant.IsSubclassOf(potentialBase) || potentialDescendant == potentialBase;
}</code>
登录后复制

此方法准确确定 potentialDescendant 是否是 potentialBase 的子类或相同。 它将IsSubclassOf检查与直接相等比较相结合,确保全面而准确的继承验证。

以上是如何可靠地检查 C# 中的类型继承(包括基类本身)?的详细内容。更多信息请关注PHP中文网其他相关文章!

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