首先,如果听起来太愚蠢,我深表歉意。但我总是在问以下问题。
由于对象类是 .Net 中所有类的最终基类,类是引用类型,引用类型存储在堆上,那么任何东西如何进入堆栈。 我知道原始类型存储在堆栈上,这就让我感到困惑了。
以 int32 为例,如果它是一个类,其基类是 object,那么它是一个引用类型,应该存储在堆上。它如何进入堆栈。
如果不是一个类,那我们怎么做呢?
int i = 1;
object obj = i;
由于我无法像这样做:
int i = 1;
MyClass myObj = i;
编辑
根据我得到的答案,int是结构体而不是类。仍然有一个困惑,那就是一个值类型的基类是引用类型(object),它是一个值类型而不是引用类型。
另一个提出的观点是,“属于类的值类型不会存储在堆栈上”,我猜一切都在一个类中,即使在控制台程序中,Main方法也在类中。对我来说,这意味着所有的变量都属于一个类?那它们如何进入堆栈?
System.Object
,但这并不意味着它继承自类。类型和类是不同的东西。 - Rodrick Chapman