gpt4 book ai didi

c# - System.Object 的 BaseType 应该和接口(interface)一样吗?

转载 作者:太空狗 更新时间:2023-10-29 22:04:12 32 4
gpt4 key购买 nike

<分区>

  • 总结

    typeof(ISomeInterface).BaseTypenulltypeof(object).BaseType 根据定义也是 null。因此:

    typeof(object).BaseType==typeof(ISomeInterface).BaseType -> true 

    它可能(在语义上)意味着 System.Object 也是一个接口(interface),不是吗?在 C# 中,所有类都继承自 System.Object,但接口(interface)却没有。接口(interface)实际上是契约,不是任何类的基类型,只能派生自其他接口(interface)。

    所以我想知道 typeof(object).BaseType 是否应该与接口(interface)相同?

  • 解释

    我以初等数理逻辑的方式思考这一点。我将 null 视为 0 并将 typeof(object) 视为 1,以便找到某种类型的基类型就像找到一个数字的因数一样。

    在此假设下,null 可以是任何类型的推导,例如 0 是任何数字的倍数。而 typeof(object) 将是任何类的基类型,例如 1 是任何数字甚至它本身的因数。然而,typeof(object).BaseType 的实际返回 null 打破了这个假设。这似乎是说 01 的因数,但不是任何其他数的因数。

    此外,如果我们使用一种方法递归地查找 SomeType 的基类型,我们不能总是说 SomeType 不是类,因为它的 BaseTypenulltypeof(object).BaseType 也为 null

    这似乎是自相矛盾的,如果

    typeof(object).BaseType==typeof(object) -> true 

    表示它的基类型是它自己,但这不正是实体和契约的区别吗?


更新:

我最初是这样说的:

It could mean System.Object is an interface, too, doesn't it?

我想说的是看起来很迷茫。描述表达不当是我的错,很抱歉导致答案集中在这一点上。

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com