void Test() { XElement root = XElement.Parse("<book></book>"); string a = "1"; test2(root, a); Response.Write(root.ToString()); Response.Write(a); } void test2(XElement root, string a) { a += "1"; root.SetAttributeValue("name", "cpp"); }輸出的是:<book name="cpp"></book>1為什么root的值變了,而a的值沒變?
1 回答

大話西游666
TA貢獻1817條經驗 獲得超14個贊
root是引用類型,所以值變了。
a是string類型,雖然也是引用類型但是比較特殊。String 對象是不可改變的。每次使用 String 類中的方法之一或進行運算時(如賦值、拼接等)時,都要在內存中創建一個新的字符串對象,這就需要為該新對象分配新的空間。
如果將a換成System.Text.StringBuilder類型,a += "1";變為a.append("1");那a的值應該會變的。
- 1 回答
- 0 關注
- 399 瀏覽
添加回答
舉報
0/150
提交
取消