【发布时间】:2014-10-11 08:09:39
【问题描述】:
考虑以下代码:
class Point
{
public int position;
}
这里的int位置将被分配到堆上,即使它是一个值类型。
但我的问题是关于相反的情况,请考虑以下代码:
struct Person
{
public string name;
}
这里将字符串名称分配在堆上还是栈上?
TIA
【问题讨论】:
-
你应该阅读:The Truth About Value Types btw,你为什么关心这个?
-
指向字符串的指针会在栈上,而字符串本身会在堆上。
-
stackoverflow.com/questions/2031258/…,第一个示例中的 int 不会分配到堆栈上。
-
@SelmanGenç 提到的文章的当前位置现在是ericlippert.com/2010/09/30/the-truth-about-value-types
标签: c# heap-memory value-type stack-memory reference-type