我只是在学习 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;
}
}
}
当我运行程序并输入字符值时,它没有设置为 currentGuess。 Visual Studio 还告诉我 currentGuess 永远不会被分配,并保持其当前值(空白)。
为什么 set 关键字不起作用?我一遍又一遍地沿着 currentGuess 的路径走,但我看不到它,所以我假设这是一个我还不知道的原因。
如有任何帮助,我们将不胜感激!
最佳答案
您必须在 setter 中交换此分配
value = currentGuess;
进入
currentGuess = value;
在set方法中,值是传入的参数。在您的情况下,您希望将该值存储在本地类变量 curtentGuess 中;
关于c# - 指向未访问 set 关键字的属性的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12656571/