在第 161 行,我想在引數 t 中插入我的文本,但是當我除錯它時它不會改變。盡管引數 tmp 已經改變了。
當我的引數 t 更改時,我想在 UI 中更改此文本。
uj5u.com熱心網友回復:
c# 中的string
型別是不可變的,因此Insert
回傳一個新字串而不是修改當前字串。
做:
t = t.text.Insert(0, tmp "//n");
也可以看看
- 如何在 C# 中修改字串內容
uj5u.com熱心網友回復:
關于您的具體問題,插入定義為:
公共字串插入(int startIndex,字串值);
并回傳一個新字串。在 C# 中,不會修改字串,而是創建新字串。通過這種方式,它們就像一個值型別,即使它們是一個參考型別。換句話說,一旦創建了一個字串,它就永遠不會被修改——它是“不可變的”。因此,您需要存盤新創建的字串。
在這種情況下,我喜歡使用字串插值,因為它可以讓我更清楚地表示最終字串的外觀。
var tmp = System.Text.Encoding.UTF8.GetString ( e.Message );
t.text = $"{tmp}\n{t.text}"; // Note that a newline is represented as \n
或者,如果您添加System.Text
命名空間;你可以把它減少到:
using System.Text;
...
t.text = $"{Encoding.UTF8.GetString ( e.Message )}\n{t.text}";
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528941.html
標籤:C#unity3d