C#中string和StingBuilder内存中的区别实例分析
本文实例分析了C#中string和StingBuilder内存中的区别,有助于更好的掌握C#程序设计中string和StingBuilder的用法。分享给大家供大家参考。具体方法如下:
关于string和StringBuilder的区别参考MSDN。本文用程序演示它们在内存中的区别,及其因此其行为不同。
先来看看下面这段代码:
//示例:string的内存模型 namespaceConsoleApplication2 { classProgram { staticvoidMain(string[]args) { stringa="1234"; stringb=a;//a,andbpointtothesameaddress Console.WriteLine(a); Console.WriteLine(b); a="5678"; Console.WriteLine(a); Console.WriteLine(b);//Thatb'svalueisnotchangedmeansstring'svaluecann'tbechanged Console.ReadKey(); } } }
输出:
1234
1234
5678;changea'svalue,b'svalueisnotchanged
1234
//示例:StringBuilder的内存模型 namespaceConsoleApplication3 { classProgram { staticvoidMain(string[]args) { StringBuildera=newStringBuilder("1234"); StringBuilderb=newStringBuilder(); b=a; a.Clear(); a.Append("5678"); Console.WriteLine(a); Console.WriteLine(b); Console.ReadKey(); } } }
输出:
5678
5678
希望本文所述对大家的C#程序设计有所帮助。