请帮助我们解决“几乎”一切都是对象的争议(对 Stack Overflow 问题的回答作为新手,在学习 C# 之前有什么需要注意的吗?)。我认为情况就是这样,因为 Visual Studio 中的所有内容至少都以结构的形式出现。请张贴参考,以免它变成“现代蠢货”(This American Life)。
请注意,这个问题指的是 C#,不一定是 .NET,以及它如何处理后台数据(显然都是 1 和 0)。
以下是对“一切都是对象”的评论:
- 呃,不,不是。– 二元忧虑者
- 我想要一个例子... – scotty2012
- 不是所有东西都派生自基本类型 Object 吗?– 细雨
- 大多数东西都是对象...... – Omar Kooheji
- 值类型、整数、双精度、对象引用(不是它们本身的对象)等都不是对象。它们可以“装箱”以看起来像对象(egiToString()),但实际上它们是原始类型。将条目更改为“几乎所有事物都是对象”,我将删除反对票 – Binary Worrier
- 我很欣赏澄清。我认为您可以在 C# 中与之交互的最低级别(例如 int)是作为结构,而不是对象?- http://msdn.microsoft.com/en-us/library/ms173109.aspx – rizzle
- Int32 不是继承自 Object 的 ValueType 吗?如果是这样,尽管有这种行为,但 int 是一个对象。——克里斯·法默
- 不,int 的装箱类型继承自 ValueType,ValueType 继承自 Object。它们不是传统意义上的对象,因为 a) int 不是对 int 的引用,它是 int。b)整数不是垃圾收集的。如果您声明一个 Int32,那么该 int 在堆栈上是 4 个字节,故事结束 – Binary Worrier
对象的定义:“对象”作为类 System.Object 的继承者,“对象”作为类型的实例,“对象”作为引用类型。