gpt4 book ai didi

.net - 字符串类型是存储在堆上还是堆栈上?

转载 作者:行者123 更新时间:2023-12-01 12:43:26 24 4
gpt4 key购买 nike

这就是让我困惑的地方:在 .NET 中,string type 是一个类,但它的行为看起来像是一个值类型!
string也是如此值类型(堆栈内存)还是引用类型(堆内存)?

最佳答案

System.String是引用类型。类值行为实际上就是所谓的“不变性”,意思是对象一旦创建,就无法更改。您希望改变对象的所有操作(例如 .ToUpper() )而是创建一个新实例。
可变性与某事物是引用类型还是值类型是一个单独的主题。您可以拥有可变值类型(尽管它们被认为是一个坏主意™)。

对于分配问题,简单的回答是引用类型通常分配在堆上,而值类型通常分配在堆栈上。
The Truth About Value Types , Eric Lippert 解释了 CLR 如何更多地基于生命周期而不是其他任何因素来做出分配决策。通常,这些是您不需要担心的细节,但不管怎样,这些都是有趣的信息。

关于.net - 字符串类型是存储在堆上还是堆栈上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com