概括
typeof(ISomeInterface).BaseType是null;typeof(object).BaseType也是null根据定义。因此:typeof(object).BaseType==typeof(ISomeInterface).BaseType -> true它也可以(语义上)意味着
System.Object是一个接口,不是吗?在 C# 中,所有类都继承自System.Object,但接口不继承。接口实际上是契约,不是任何类的基类型,只能从其他接口派生。所以我想知道是否
typeof(object).BaseType应该与接口相同?解释
我以初等数理逻辑的方式想到了这一点。我将
nullas0和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是一个接口,不是吗?
我想说的是它似乎很困惑。这是我表达不佳的描述的错,很抱歉导致答案集中于此。