在 .NET 中确实所有类型都继承自 System.Object。
我发现自相矛盾的是 System.Object 上的一些方法 - 即
- 公共虚拟字符串ToString();
- 公共虚拟布尔等于(对象objA,对象objB);
System.String 继承自 System.Object:
[Serializable]
public class String : Object { /*...*/ }
System.Boolean 继承自 System.Object:
[Serializable]
public struct Boolean : Object { /*....*/ }
允许 System.Object 类允许子类用作其方法的返回类型的幕后情况是什么?这段代码是如何编译的,因为似乎有循环引用。字符串 <-> 对象 <-> 布尔值。
我相信我会看到关于“这就是它的实现方式”的声明,但我可以理解这些返回类型是否是“System.Object”本身,然后一个子类使用了字符串、布尔和其他 System.ValueTypes 来声明一个新的基类。
我希望这是有道理的。
提前致谢,
多米尼克