Ich kann die Array-Mitglieder nicht dauerhaft ersetzen. Wenn ich den Wert von String Clue ändere, zeigt die angezeigte Zeichenfolge nur den aktuellen Wert von clue an. Ich denke das Problem ist uns bei der Initialisierung von char []. Ich habe versucht, sie in andere Teile des Codes zu setzen, aber es erzeugt Fehler. Anfänger hier! Hoffe, du kannst mir helfen. Vielen Dank! :)Kann den Wert in einem Array nicht dauerhaft ersetzen
private void clues(String clue)
{
int idx = numb[wordOn]+4;
char[] GuessHide = Words[idx].ToUpper().ToCharArray();
char[] GuessShow = Words[idx].ToUpper().ToCharArray();
for (int a = 0; a < GuessHide.Length; a++)
{
if (GuessShow[a] != Convert.ToChar(clue.ToUpper()))
GuessHide[a] = '*';
else
GuessHide[a] = Convert.ToChar(clue.ToUpper());
}
Guess(string.Join("", GuessHide));
}
Strings sind in C# unveränderlich. Verwenden Sie 'ref String clue', wenn Sie den Kontext von' clue' ändern wollen –
Unveränderliche Zeichenfolgen lesen! ein Objekt, dessen Zustand nach der Erstellung nicht geändert werden kann. http://stackoverflow.com/questions/4274193/what-is-the-difference-between-a-mutable-and-immututable-string-in-c – Tushar
Ich bin nicht sicher, was die "Rate" Funktion tut. führt Guess die Wortliste erneut aus? Wenn nicht, dann liegt Ihr Problem in der Unveränderlichkeit von Strings und Sie müssen es wieder in Words einfügen. Willkommen zu Stack-Überlauf :) –