C#用new来创建一个结构体的时候,这个结构体的实例到底是在栈上面,还是在堆上面?
书上说,结构体的创建总是在栈上面,那么我如果写new MyStruct这个也是在栈上面吗?
(1) Plus: 我能否通过debug窗口来观察和证明某个new出来的结构体到底是在栈上,还是在堆上呢?
(2) 是否可以把一个struct类型的实例传递给一个需要有obj类型参数的函数?
struct是结构体,按值传递,传给一个obj类型,会有隐含的装箱操作对吧,也就是有一个额外的从栈到堆的拷贝。
可是我如果按值操作的话,参数传递也是一个拷贝啊,代价上有什么不同吗?