C# 复制语义与字符串实验室

点击步骤观察:变量复制后,究竟产生了新值,还是多了一条到同一对象的路径?

值类型:复制内容

a42
b未声明

先复制,再修改 b。

引用类型:复制引用

first→ Order #7
状态:待分拣
second未声明

复制的是引用值,不是对象本体。

关键问题不是“它在哪块内存”,而是“这次操作复制了什么”。默认传参也沿用同一规则。

string:每次变换得到新字符串

hello→ ToUpperInvariant() →尚未执行

原字符串不会被改写。

StringBuilder:修改同一缓冲区

缓冲区:[空]

适合循环中累计较多片段。

string source = "hello";
string result = source.ToUpperInvariant();