初探String类型
最近一直纠结着String类型,一直想着这个问题:

using System;
using System.Collections.Generic;
using System.Text;
namespace test
{
class Program
{
static void Main(string[] args)
{
string str1 = "aaa";
string str2 = str1;
str1 = "bbb";
Console.WriteLine(str1);
Console.WriteLine(str2);
Console.ReadKey();
}
}
}
大家先看一下代码。定义了一个str1,再定义一个str2,把str1赋值给str2,为什么修改了str1之后,str2的值不会改变呢?
一开始,我是认为str1和str2都是指向同一个引用的(事实上确实如此)。但是当我修改了str1的值为bbb之后,str2的值
竟然没有跟着改变,于是我就想,是不是他们一开始就不是指向同一个地址呢???一开始的str2=str1..是不是只是把str1的
值赋给str2指向的地址呢?
于是我上网查了查资料,原来,str1和str2一开始时指向同一个地址单元的,但是当str1的值改变之后,str1就会指向"bbb"
的内存地址,而不再指向"aaa"的地址了,所以输出str2的时候仍然是aaa。也就是str1="bbb"的时候,是不会修改str1所指向
的内存地址的值的,只会重新分配内存单元给新的String类型,这个也就是String的特点。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述