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

  • 相关阅读:
    codeforces 484D D. Kindergarten(dp)
    codeforces 484B B. Maximum Value(二分)
    codeforces 484A A. Bits(贪心)
    51nod-1537 1537 分解(矩阵快速幂+找规律)
    大数取模
    小明的烦恼
    子网掩码
    How Many Tables
    N的N次方
    外星人的供给站
  • 原文地址:https://www.cnblogs.com/rr163/p/3977388.html
Copyright © 2011-2022 走看看