2012-03-11 85 views

回答

2

當您定義string s;時,您只能定義一個引用,它當前根本沒有指向任何內容。由於字符串是引用類型,因此編譯器不會生成string s = new String(..);。你可能會理解它,string s = null;將是編譯結果。

對於值類型,例如int,情況是不同的。例如,當您定義int i;時,它將編譯爲int i = 0;,其中0是默認值。

0

我想通了我的困惑:在閱讀this後,我明白堆棧將持有參考s將在初始化後分配在堆中。

+0

我不知道誰投了票,但你的理解比你在問題中表達的要好得多。但是,它仍然只涵蓋了一些字符串之謎。還有另一個重要的事情,使字符串特殊,http://msdn.microsoft.com/en-us/library/system.string.isinterned.aspx – 2012-03-11 11:05:33

相關問題