是否应该在c#程序中分配堆栈

本文关键字:分配 堆栈 程序 是否 | 更新日期: 2023-09-27 18:05:03

根据我对c#的了解(我相信我是对的),值类型是在堆栈上分配的,引用类型是在堆上分配的。但是,如果类中的字段是值类型,则它被分配在堆上而不是堆栈上(我仍然是对的,对吗?)。

话虽如此,我也知道每个c#程序都是一个类,并且由类组成。这意味着c#程序中声明的任何变量,无论是值类型还是引用类型,都应该在堆上分配。

那么我可以推断的是,栈可能并没有真正在c#程序中使用。我说"可能"是因为可能会有特别的情况,但据我所知并没有。

是否应该在c#程序中分配堆栈

你大部分是正确的:)

但是,方法的局部变量确实是从堆栈中分配的。这是值类型的全部真理。对于引用类型,实际的对象、字符串、数组等是在堆上分配的,但指针本身是在堆栈上分配的。

引用类型存储在堆中。对于包含在引用类型中的值类型来说,这是正确的。相反,在堆栈中存储的是存储在堆中的对象的引用。

关于500 -内部服务器错误指出的方法的局部变量。