gpt4 book ai didi

c# - .NET 堆栈和堆,当我声明一个字符串时会发生什么?

转载 作者:太空狗 更新时间:2023-10-29 19:52:00 26 4
gpt4 key购买 nike

如果我执行这一行,我会创建一个字符串作为引用。

string mystring = "Hello World"

变量 mystring 是否与我声明的对象在同一上下文中?堆上的数据“Hello World”

最佳答案

Official Answer:这是一个实现细节,您不需要知道。

对于框架的特定(当前)版本当然是可知的:

  1. 如果这是在方法内部,则 mystring 是一个引用变量,通常在堆栈上。但是当它被 lambda 捕获,或者当方法是异步的,或者......它被移动到堆中。

  2. 如果这是在一个类中,那么每个实例都将包含一个 mystring 引用作为字段,存储在堆中。

在这两种情况下,堆上都有一个匿名字符串对象,其中包含 "Hello World"

关于c# - .NET 堆栈和堆,当我声明一个字符串时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12727821/

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