2

我只是在学习 C# 并尝试练习使用类而不是在 Main 中编写所有内容,因此我正在尝试编写一个刽子手的控制台游戏。

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

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 的路径,但我看不到它,所以我假设这是我还不知道的原因。

任何帮助,将不胜感激!

4

1 回答 1

2

你必须在你的 setter 中交换这个 assingment

value = currentGuess;

进入

currentGuess = value;

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

于 2012-09-29T21:23:24.897 回答