C#控制台基础 字符串虽然是引用类型,但是相互赋值 不产生相互联系

来源:互联网 发布:es海量数据分析 编辑:程序博客网 时间:2024/06/05 19:18
镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。

——————————————————————————————————————————————————————————



using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication12{    class Program    {        static void Main(string[] args)        {            string s1 = "好好学习";            string s2 = s1;            s2 = "天天进步";            Console.WriteLine(s1);            Console.WriteLine(s2);            Console.ReadKey();        }    }}






分析:

引用类型赋值,传递的是保存在栈中的引用。

字符串虽然是引用类型,但是每次相互赋值时都会在堆中新开辟一块空间。所以传递的引用不一样!

正是因为这种特性,反复处理字符串,处理大规模字符串时,就是要使用stringbuilder。




——————————————————————————————————————————————————————————
感恩帮助过我的人。博客的精髓在技术部分,更在镇场一诗。
我是一个新手,代码还有许多不完善的地方,请您看代码的时候多多思考。
C#是一个优秀的语言,VS是一个优秀的编译软件,二者值得学习。如果您有一些不会的知识,咱们可以相互讨论。
如果您认为代码可以有改进的地方,有错误的地方,请留下评论,我会处理的。
注:如果我的博文无意中侵犯了您的权益,请告知。看到您的告知后,我将及时作出处理。


0 0