zoukankan      html  css  js  c++  java
  • 代码演示C#中string和StingBuilder内存中的区别

    关于 string和StringBuilder的区别参考MSDN。本文用程序演示它们在内存中的区别,及其因此其行为不同。

    //Demo  string memory model

    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {

                string a = "1234";

                string b = a;//a,and b point to the same address

                Console.WriteLine(a);

                Console.WriteLine(b);

                a = "5678";

                Console.WriteLine(a);

                Console.WriteLine(b);//That b's value is not changed means string's value cann't be changed


                Console.ReadKey();
            } 
                
        }
    }

    output:

    1234

    1234

    5678;change a's value,b's value is not changed

    1234

    //Demo StringBuilder's memory model

    namespace ConsoleApplication3
    {
        class Program
        {
            static void Main(string[] args)
            {
      
                StringBuilder a = new StringBuilder("1234");
                StringBuilder b = new StringBuilder();
                b = a;
                a.Clear();
                a.Append("5678");
                Console.WriteLine(a);
                Console.WriteLine(b);
                Console.ReadKey();
            }

            
        }
    }

    output:

    5678

    5678

  • 相关阅读:
    关于链表的代码
    c++中的友元函数
    javaweb笔记全套
    包装类、object、单例模式、final、抽象类
    Linux变量内容的删除、代替与替换
    2014年工作中遇到的20个问题:181-200
    Qt中 QString 和int,double等的转换
    jsp学习笔记总结
    工作日志2014-07-04
    Maple入门使用教程
  • 原文地址:https://www.cnblogs.com/rr163/p/3977388.html
Copyright © 2011-2022 走看看