概括
typeof(ISomeInterface).BaseType
是null
;typeof(object).BaseType
也是null
根据定义。因此:typeof(object).BaseType==typeof(ISomeInterface).BaseType -> true
它也可以(语义上)意味着
System.Object
是一个接口,不是吗?在 C# 中,所有类都继承自System.Object
,但接口不继承。接口实际上是契约,不是任何类的基类型,只能从其他接口派生。所以我想知道是否
typeof(object).BaseType
应该与接口相同?解释
我以初等数理逻辑的方式想到了这一点。我将
null
as0
和typeof(object)
as 视为1
,因此查找某种类型的基本类型就像查找数字的因数一样。在这个假设下,
null
可能是任何类型的推导,就像0
是任何数字的倍数。并且typeof(object)
将是任何类的基本类型,就像1
是任何数量的因子,甚至它本身。然而,的实际回归打破null
了这一假设。typeof(object).BaseType
这似乎是说这0
是一个因素,1
但不是任何其他数字。此外,如果我们使用一种方法来递归地找到基类型
SomeType
,我们不能总是说它SomeType
不是一个类,因为它BaseType
是null
,typeof(object).BaseType
也是null
。如果
typeof(object).BaseType==typeof(object) -> true
表示它的基本类型是它自己,但这不正是实体和合同之间的区别吗?
更新:
我原来是这么说的:
这也可能意味着它
System.Object
是一个接口,不是吗?
我想说的是它似乎很困惑。这是我表达不佳的描述的错,很抱歉导致答案集中于此。