使用new操作符创建一个对象时,如果该对象是引用类型,就一定需要在堆上分配内存;如果是值类型呢?是在堆栈上分配内存?求解释
http://www.cnblogs.com/edisonchou/p/4787775.html
这篇文章应该对你有帮助
这里分两种情况
1 如class 是引用类型的 但是里面有个int类型的属性 这个时候它是存在于堆上的
2 如Struct 是值类型 但是里有个string 类型的属性,这个时候它的值是存在于堆上而栈只保留一个引用
除了Struct之外的其他值类型呢?
@OSManager: Struct也是在栈上的只是它内部如果有引用类型,栈上只会保留引用,其它值类型都是在栈上
买一本红宝书来好好看看 ,c#高级编程第7版