编程语言书籍通常解释说,值类型是在堆栈上创建的,而引用类型是在堆上创建的。
我的问题是为什么。
我的问题是为什么。
他们为什么要“解释”这一点?因为有时作者自己也不太了解,有时他们又懒得正确解释。事实却相当复杂。
幸运的是,埃里克·利珀特(Eric Lippert)围绕这一点撰写了大量文章:
- 堆栈是实现细节,第 1 部分 https://learn.microsoft.com/ro-ro/archive/blogs/ericlippert/the-stack-is-an-implementation-detail-part-one
- 堆栈是实现细节,第 2 部分 https://learn.microsoft.com/ro-ro/archive/blogs/ericlippert/the-stack-is-an-implementation-detail-part-two
- 关于值类型的真相 https://learn.microsoft.com/en-us/archive/blogs/ericlippert/the-truth-about-value-types
虽然我通常会尝试至少在此处包含完整答案的释义,但我不会在这里这样做 - 因为解释它非常简短地几乎必然会给出误导性的结果。只要去阅读那些博客文章 - 然后就是埃里克写的其他所有内容。这需要几周的时间,但你会很高兴你做到了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)