Mid*_*hat 4 .net string clr memory-management
string.EmptyCLR需要多少空间?
我猜这个NULL角色只有一个字节.
不,字符串是一个完整的对象,有一个对象标题(包含类型引用,同步块等),长度和所需的任何字符...这将是一个单独的空字符(两个字节)和适当的填充圆形总共最多4或8个字节.
请注意,虽然.NET中的字符串有一个长度字段,但为了互操作,它们仍然是空终止的.空字符不包含在长度中.
当然,string.Empty无论您使用多少次都只会引用单个对象...但引用将是4或8个字节,因此如果您有:
string a = string.Empty;
string b = string.Empty;
string c = string.Empty;
Run Code Online (Sandbox Code Playgroud)
这将是三个引用(12或24个字节)都指向同一个对象(大小约为20或24个字节).