|
|
1
13
不,因为你没有修改
|
|
|
2
2
这里一致的答案是正确的。 字符串类型是内存中不可变字符串的引用类型。所有字符串的集合将在内存中创建(恰当地称为字符串池),其中包含已创建的字符串。在问题1中,第一个语句在内存中创建一个字符串,并在字符串池中为str1分配一个对该字符串的引用。 当您执行以下操作时
实际上,您正在向字符串池添加一个新字符串(透明地创建一个新字符串),然后为str1分配一个对新字符串的引用。 例如,考虑一下:
在这个场景中,在字符串池中只创建两个字符串。当您到达代码中的第三行时,.NET平台将检查字符串池,找到匹配项,并向str1提供对字符串池中已存在的字符串的引用,而不是创建重复的字符串。
字符串是不可变的,因为一旦它们存在 在记忆中 ,不能更改。C中的StringBuilder允许我们避免这个问题。我们可以自由地修改StringBuilder对象中的内容。在调用.ToString()方法之前,我们创建的字符串不会提交到字符串池。 |
|
|
3
1
你指的是 . 这就是为什么可以更改字符串变量赋值。 不可能,但出于所有的意图和目的,应该被认为是这样)。 新的 串;调用该方法的原始方法是不可变的。 |
|
|
4
0
正确,如果这不是所需的功能,请查看StringBuilder对象。 问题2: |
|
|
A B · C#Excel自动调整列避免长文本时出错 11 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 11 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 11 月前 |
|
|
Duck0 · 这个对象在更高的帧率下会更快吗,因为它在Update()中? 11 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 11 月前 |