指向不访问set关键字的属性的构造函数

时间:2012-09-29 21:19:21

标签: c# class properties set keyword

我正在学习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的路径,我看不到它,所以我认为这是我不知道的原因。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

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

value = currentGuess;

currentGuess = value;

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