我正在做一個簡單的hang子手遊戲。除了用戶輸入正確字符的部分以外,我已經完成了所有工作,解決方案中的相應字符應替換爲前者。在位置x處替換字符串中的單個字符
首先,這裏是我的代碼:
private void checkIfLetterIsInWord(char letter)
{
if (currentWord != string.Empty)
{
if (this.currentWord.Contains(letter))
{
List<int> indices = new List<int>();
for (int x = 0; x < currentWord.Length; x++)
{
if (currentWord[x] == letter)
{
indices.Add(x);
}
}
this.enteredRightLetter(letter, indices);
}
else
{
this.enteredWrongLetter();
}
}
}
private void enteredRightLetter(char letter, List<int> indices)
{
foreach (int i in indices)
{
string temp = lblWord.Text;
temp[i] = letter;
lblWord.Text = temp;
}
}
所以我的問題是該行
temp[i] = letter;
我來到這裏的錯誤,指出「屬性或索引不能被分配到 - 它是隻讀只要」。我已經搜索了一下,發現在運行時不能修改字符串。但我不知道如何替換包含猜測的標籤。標籤的格式是
_ _ _ _ _ _ _ //single char + space
任何人都可以給我一個提示,我可以如何用猜測的字符替換解決方案中的字符?
非常感謝,它的工作方式。有沒有任何理由爲什麼字符串是不可改變的? – LeonidasFett
字符串不可變的一些原因是:線程安全性,積極的編譯器優化和內存保存(例如快速複製),副作用預防(例如字典) –