111,129
社区成员
发帖
与我相关
我的任务
分享int x = 1;的变量定义和对象(数据)初始化。
如果你偏离了这点,偏要纠结一个明明已经知道“存储在堆上”的对象中的成员是不是值类型的,你觉得这是不是学习学偏了、没理解书上教条的针对性呢?void test()
{
var x = new DataType();
.......
}假设 DataType 是值类型的,那么 x 就是直接表示栈上一块内存区域,这块区域保存了对象内容。
而假设DataType是引用类型的,那么变量x就是直接表示栈上的一个“引用”数据结构,这个引用的内容不过是间接查找堆上的真实的内存区域的索引。
因此这个所谓的的“分配在栈”是指这样地声明变量 x 的实现机制。而你把它说成是“引用类型对象中的成员是值类型的”,这就偏离了意思。