c# - 如果字符串在 C# 中是不可变的,我为什么要这样做?

标签 c#

我今天读到,在 C# 中,字符串是不可变的,就像一旦创建它们就不能更改,那么下面的代码是如何工作的

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

console.write(str) //output: abcde

变量的值怎么变了??

最佳答案

字符串对象是不可变的,但变量可以重新分配。

您创建了单独的对象

a
ab
abc
abcd
abcde

这些不可变字符串中的每一个都依次分配给变量 str。

你不能改变一个字符串的内容(里面的字符)。

改变变量是完全不同的事情。

关于c# - 如果字符串在 C# 中是不可变的,我为什么要这样做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6921097/

相关文章:

c# - 运行 devenv 来构建 VDPROJ 设置

c# - 在 Unity 着色器中避免字符串属性

c# - 您可以使用 LINQ to SQL 实体更新数据库吗?

c# - 在 C# 的 string[] 数组中插入字符串

c# - 无法使用 linq 从 xml 读取到 <>,获取空值

c# - Visual Studio 不断询问 "save file as"

c# - 使用opencv c#检测图像中的文本 block

c# - 在 C#(COM 组件)中使用 DirectShow c++ 的 API

c# - Gridview 应用程序中的错误

c# - Ninject Factory 扩展与 Lazy<T>