小编Sim*_*cra的帖子

当声明非空字符串时,C#是否隐式分配空字符串?

我关注的是对可追溯到2011年的前一个答案的评论:不可变的字符串.

它声称有这个代码

string str="a";
str +="b";
str +="c";
str +="d";
str +="e";

console.write(str) //output: abcde
Run Code Online (Sandbox Code Playgroud)

在内存中创建10个字符串:

"", "a", "b", "c", "d", "e", "ab", "abc", "abcd", and "abcde"
Run Code Online (Sandbox Code Playgroud)

虽然我可以理解为什么会发生这种情况,但我仍然无法理解为什么首先会有一个""字符串.有人可以暗示我吗?也许情况甚至不是这样的?C#文档没有说明问题.我唯一的猜测是C#的字符串是一个ref类型,所以它null默认情况下,但是...在这个例子中它在一开始就得到一个值,所以我有点困惑.

c# memory string

4
推荐指数
1
解决办法
97
查看次数

标签 统计

c# ×1

memory ×1

string ×1