gpt4 book ai didi

c# - 未分配的变量和 "Not all code paths return a value"解决方法?

转载 作者:行者123 更新时间:2023-11-30 13:25:20 26 4
gpt4 key购买 nike

private static char GetGuess()
{
char guess;
bool guessInputSuccess = false;

while (!guessInputSuccess)
{
Console.Write("Guess your letter: ");

char.TryParse(Console.ReadLine().ToLower(), out guess);

if (!char.IsLetter(guess))
{
Console.Write("You have not entered a letter from a-z.");
}
else
{
guessInputSuccess = true;
}
}

return guess;
}

目前看来,我无法返回 guess,因为它未分配。我通常解决这个问题的方法是将 guess 分配给一个随机字符。由于 while 循环将一直持续到输入 a-z 中的有效字符为止,因此可以确信在它返回时,a-z 中的一个字符将被分配给 guess。我个人不喜欢这种解决方法,因为对我来说,它感觉很草率。

我的问题是:有什么方法可以让 guess 在方法开始时保持初始化但未分配,并且在方法执行结束时仍然设置并正确返回?

最佳答案

输入正确的猜测后立即返回 - 并一直循环直到那时。您根本不需要 guessInputSuccessguess 可以有更小的范围:

private static char GetGuess()
{
while (true)
{
Console.Write("Guess your letter: ");
if (char.TryParse(Console.ReadLine().ToLower(), out char guess) &&
char.IsLetter(guess))
{
return guess;
}
Console.Write("You have not entered a letter from a-z.");
}
}

关于c# - 未分配的变量和 "Not all code paths return a value"解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58998091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com