當(dāng)我傳遞string給一個(gè)函數(shù)時(shí),是一個(gè)指向傳遞給字符串內(nèi)容的指針,還是整個(gè)字符串傳遞給堆棧上的函數(shù)就像struct是?
3 回答

開滿天機(jī)
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
C#中的字符串是不可變的引用對(duì)象。這意味著對(duì)它們的引用會(huì)傳遞(按值),一旦創(chuàng)建了一個(gè)字符串,就無法修改它。生成字符串的修改版本(子字符串,修剪版本等)的方法會(huì)創(chuàng)建原始字符串的修改副本。

慕碼人2483693
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
字符串是特殊情況。每個(gè)實(shí)例都是不可變的。當(dāng)您更改字符串的值時(shí),您將在內(nèi)存中分配新字符串。
因此,只有引用被傳遞給您的函數(shù),但是當(dāng)編輯該字符串時(shí),它將成為一個(gè)新實(shí)例,并且不會(huì)修改舊實(shí)例。
- 3 回答
- 0 關(guān)注
- 271 瀏覽
添加回答
舉報(bào)
0/150
提交
取消