我对Stack vs Heap之间的内存分配基础感到困惑.按照标准定义(每个人都说的),所有Value Types个类型将被分配到Stack,Reference个类型将被分配到Heap.
现在考虑下面的例子:
class MyClass
{
int myInt = 0;
string myString = "Something";
}
class Program
{
static void Main(string[] args)
{
MyClass m = new MyClass();
}
}
那么,在c#中,内存分配将如何进行呢?MyClass
(即m
)的对象将完全分配给堆吗?也就是说,int myInt
和string myString
都将进入堆?
或者,对象将分为两部分,并将分配给两个内存位置,即堆栈和堆?