嘿所以我正在为课程编写一个程序,并且不知道为什么我的代码会抛出错误:“使用未分配的局部变量'value'”
这是我的开关声明:
switch (sType)
{
case 1:
Console.Write("Enter GPA: ");
swag = Convert.ToInt32(Console.ReadLine());
break;
case 2:
Console.Write("Enter thesis title: ");
cool = Console.ReadLine();
break;
case 3:
Console.Write("Enter dissertation title: ");
value = Console.ReadLine();
break;
case 4:
break;
default:
Console.WriteLine("Invalid input");
break;
}
Console.WriteLine(value);
所以基本上我只是输入这个“sType”,并且开关工作,但是当我打印出值变量时,我得到“使用未分配的局部变量'值'”错误。
答案 0 :(得分:4)
您需要初始化已定义它的变量值。
string value = string.empty;
以防万一,如果案例3没有在程序中执行怎么办?因此,value
在整个计划中仍未被初始化。但是,在所有情况下,最后,您在最后一行写入value
的值,该值为空。
因此,编译器会抛出一个错误,即在打印其值之前应该初始化变量值。
*注意:在某些地方使用 之前,您必须为其分配一些值。
答案 1 :(得分:2)
value
似乎没有被定义/初始化。你的switch语句上方应该有
var value = "";
答案 2 :(得分:1)
string sID, zip, thesis, value;
sID = zip = thesis = value = string.Empty;