来自switch语句的变量不会打印

时间:2016-09-01 02:36:06

标签: c# switch-statement

嘿所以我正在为课程编写一个程序,并且不知道为什么我的代码会抛出错误:“使用未分配的局部变量'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”,并且开关工作,但是当我打印出值变量时,我得到“使用未分配的局部变量'值'”错误。

3 个答案:

答案 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;