我只是在学习C#,并试图获得一些与类有关的实践,而不是在Main中编写所有内容,因此我试图编写一个hangman的控制台游戏。

我正在用此行初始化猜测的字母:

Guess guess = new Guess(Console.ReadLine());


指向Guess.cs文件中的此构造函数:

public Guess(string guessString)
    {
        CurrentGuess = Convert.ToChar(guessString);
    }


CurrentGuess引用此属性:

private char currentGuess

public char CurrentGuess
    {
        get
        {
            return currentGuess;
        }

        set
        {
            foreach (char letter in guessList)
            {
                if (letter == value)
                {
                    GuessedAlready = true;
                    break;
                }
            }

            if (GuessedAlready == false)
            {
                value = currentGuess;
                guessesMade++;
                guessList[guessesMade-1] = value;

            }
        }
    }


当我运行程序并输入一个char值时,它没有设置为currentGuess。另外,Visual Studio告诉我从未将currentGuess分配给它,而是保持其当前值(为空)。

set关键字为什么不起作用?我已经一遍又一遍地遵循了currentGuess的路径,但我看不到它,所以我认为这是我不知道的原因。

任何帮助,将不胜感激!

最佳答案

您必须在二传手中交换此建议

value = currentGuess;


进入

currentGuess = value;


在set方法中,值是传入参数。在您的情况下,您想将该值存储在本地类变量curtentGuess;中。

07-26 08:35