return 函数值到变量

return function value to variable

我目前正在尝试理解 c# 和 methods/functions。 我只是想让函数 PlayerName() return 有一个可以存储在变量 playerName 中的值。 我有这段代码,但我不明白哪里出了问题。 没有 while 循环,它就可以工作。然而,while循环一执行,问题就出现在return playerName(Use of unassigned local variable 'playerName')。我不明白它是如何取消分配的。


namespace methodtest
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string playerName = PlayerName();

        }

        static string PlayerName()
        {
            bool notCorrect = true;
            string playerName;
            while (notCorrect)
            {
                Console.Write("Type your name: ");
                playerName = Console.ReadLine();
                Console.WriteLine($"You typed {playerName}. Continue? 'y'/'n'");
                string correct = Console.ReadLine();

                if (correct == "n")
                {
                    Console.WriteLine("Try again.");
                }
                else if (correct == "y")
                {
                    notCorrect = false;
                }
            }
            return playerName;

        }
    }
}


首先 - 您需要初始化 playerName 变量 (string playerName = "") 或 (string.Empty)

其次 - 您没有显示 playerName,只是将 PlayerName() 的结果分配给变量。您需要显示变量。

您收到的错误消息是 CS0165: Use of unassigned local variable 'playerName' 编译器告诉你需要给 playerName 一个初始值。 您可以使用以下任何您认为合适的方式对其进行初始化。

string.Empty""

null

举个例子 string playerName = string.Empty;