参考类型中定义的值类型存储在堆还是栈上?
- 如果存储在堆中,那么什么时候值类型存储在栈上?
- 如果存储在栈中,那么当所有内容最终以值类型结束时,堆中会存储什么?
参考类型中定义的值类型存储在堆还是栈上?
引用自此处:
每个局部变量 (即在方法中声明的变量) 都存储在堆栈上。这包括引用类型变量 - 变量本身在堆栈上,但请记住,引用类型变量的值仅为引用 (或 null),而不是对象本身。方法参数也算作局部变量,但如果它们用 ref 修饰符声明,则它们不会获得自己的插槽,而是与调用代码中使用的变量共享插槽。
我猜像 TextBox txtbx = new TextBox();
这样的东西意味着变量 txtbx 存在于堆栈上,但它的值通常是指向位于堆上的对象的引用。
引用类型的实例变量始终在堆上。那就是对象本身 "存在" 的地方。