在Java中,字符串是不可變的。如果我們有一個字符串,並進行更改,我們獲得由同一個變量引用新的字符串:C#不可變int
String str = "abc";
str += "def"; // now str refers to another piece in the heap containing "abcdef"
// while "abc" is still somewhere in the heap until taken by GC
It's been said是int和double在C#中不可改變的。這是否意味着當我們有int並且稍後改變它時,我們會得到由同一個變量「指向」的新int?同樣的事情,但與堆棧。
int i = 1;
i += 1; // same thing: in the stack there is value 2 to which variable
// i is attached, and somewhere in the stack there is value 1
這是正確的嗎?如果不是,那麼int是不可變的?
爲了完整起見,.NET字符串也不可改變。 –