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;
我目前正在尝试理解 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;