【发布时间】:2011-07-06 18:49:45
【问题描述】:
空字符串和null 占用多少内存?
我找到了this question,它讲述了String.Empty 的内存分配,而不是null。
如果我想在会话中存储一个空字符串或null,哪个会占用更少的空间?
class MyClass
{
public string One { get; set; }
public string Two { get; set; }
public MyClass(string one,string two)
{
One = one;
Two = two;
}
}
class Main
{
var emp = new MyClass(String.Empty, String.Empty);
var nul = new MyClass(null,null);
}
【问题讨论】:
-
猜猜这是另一个过早的优化问题......首先意识到空引用和空字符串在语义上是不同的东西,然后根据它决定你希望你的程序如何运行。这些小东西的内存管理之类的东西是由微软来担心的,而不是你。
-
BoltClock:我想说这已经可以作为答案了:-)
-
Jon Skeet 在您提供给我们的链接中已经很好地解释了这一点。
-
@Joey:哈,我也是这么想的,但我不知道实际问题的答案,所以我宁愿不把它作为一个发布。
-
@BoltClock :Jon Skeet 在提供的链接中很好地解释了它,但我不确定 null 部分。这更多的是对 clr 的内部理解而不是实现。:)