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

  • 相关阅读:
    android handle详解
    android面试详解
    linux网络编程-一个简单的线程池(41)
    linux网络编程-posix条件变量(40)
    如何写一个简单的分页
    jQuery 3 有哪些新东西
    浅析正则表达式模式匹配的 String 方法
    jQuery源码浅析2–奇技淫巧
    前端文本截断
    你会用setTimeout吗
  • 原文地址:https://www.cnblogs.com/rr163/p/3977388.html
Copyright © 2011-2022 走看看