国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#字符串對象的不可變性

2023-05-09 18:58:17
字體:
來源:轉載
供稿:網友

字符串對象是不可變的:即它們創建之后就無法更改。所有看似修改字符串的 String 方法和 C# 運算符實際上都以新字符串對象的形式返回結果。

在下面的示例中,當連接 s1 和 s2 的內容以形成一個字符串時,不會修改兩個原始字符串。+= 運算符會創建一個包含組合內容的新字符串。這個新對象賦給變量 s1,而最初賦給 s1 的對象由于沒有其他任何變量包含對它的引用而釋放,用于垃圾回收。

            string s1 = "A string is more ";
            string s2 = "than the sum of its chars.";

            // Concatenate s1 and s2. This actually creates a new
            // string object and stores it in s1, releasing the
            // reference to the original object.
            s1 += s2;

            System.Console.WriteLine(s1);
            // Output: A string is more than the sum of its chars. 

由于“修改”字符串實際上是創建新字符串,因此創建對字符串的引用時必須謹慎。

如果創建了對字符串的引用,然后“修改”原始字符串,則該引用指向的仍是原始對象,而不是修改字符串時創建的新對象。下面的代碼說明了這種行為:

string s1 = "Hello ";
string s2 = s1;
s1 += "World";

System.Console.WriteLine(s2);
//輸出: Hello

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东方市| 囊谦县| 锡林浩特市| 乌拉特后旗| 同德县| 小金县| 当雄县| 榆中县| 新沂市| 迁西县| 苏尼特左旗| 平舆县| 重庆市| 荥经县| 开阳县| 通江县| 华安县| 共和县| 林甸县| 岳西县| 比如县| 武安市| 东乌珠穆沁旗| 荆州市| 毕节市| 武威市| 隆昌县| 清丰县| 嘉黎县| 雷波县| 西林县| 六盘水市| 扎囊县| 宜城市| 邯郸县| 淮安市| 衡南县| 泰安市| 通城县| 县级市| 柳州市|