none
String.Empty的小问题 RRS feed

  • 问题

  • 请问各路大侠:

    string a = String.Empty;
    strng b ="";

    这两个有什么区别啊???   
    我看msdn上说 String.Empty 代表空字符串 , 
    那么直接写a=""不就可以了吗?

    为什么还要创造一个String.Empty出来??是不是多余的,
    还是说String.Empty包括了我没有想到的情况 , 

    菜鸟学生求助!
    2014年12月30日 1:43

答案

  • 你好:

    string.Empty和""是一样的,但是推荐使用string.Empty,因为它是string类中的一个静态只读变量,在内存中只有唯一的实例,而如果你使用""则会在内存里面新建一个实例,使用string.Empty可读性会好一点,而且会节省一点内存。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    這說法有點不正確, 在 CLR 裡有 String Pool 機制, 所以當
               string x = string.Empty;
               string y = "";

    變量 x, y 其實是指向同一個字串物件, 所以沒有節省內存的問題. 但String.Empty 增加可讀性這點我是贊同的.
    可以用以下代碼驗證其物件為同一個
        class Program
        {
            static void Main(string[] args)
            {
                string x = string.Empty;
                string y = "";
    
                Console.WriteLine(object.ReferenceEquals(x, y));
                Console.ReadLine();
            }
        }


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月31日 8:05

全部回复

  • 你好:

    string.Empty和""是一样的,但是推荐使用string.Empty,因为它是string类中的一个静态只读变量,在内存中只有唯一的实例,而如果你使用""则会在内存里面新建一个实例,使用string.Empty可读性会好一点,而且会节省一点内存。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年12月31日 3:06
    版主
  • 你好:

    string.Empty和""是一样的,但是推荐使用string.Empty,因为它是string类中的一个静态只读变量,在内存中只有唯一的实例,而如果你使用""则会在内存里面新建一个实例,使用string.Empty可读性会好一点,而且会节省一点内存。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    這說法有點不正確, 在 CLR 裡有 String Pool 機制, 所以當
               string x = string.Empty;
               string y = "";

    變量 x, y 其實是指向同一個字串物件, 所以沒有節省內存的問題. 但String.Empty 增加可讀性這點我是贊同的.
    可以用以下代碼驗證其物件為同一個
        class Program
        {
            static void Main(string[] args)
            {
                string x = string.Empty;
                string y = "";
    
                Console.WriteLine(object.ReferenceEquals(x, y));
                Console.ReadLine();
            }
        }


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月31日 8:05
  • 嗯,有道理,我之前没有验证过。

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年1月5日 3:04
    版主