use*_*597 0 c# switch-statement
我有以下代码.一个switch语句,它接受一个州名并将另一个变量设置为该状态的abbriviation.但是,在我关闭我的switch语句后,我得到一个错误,说变量无法访问.
string stateab;
switch (s)
{
case "Alabama":
stateab = "AL";
break;
case "Alaska":
stateab = "AK";
break;
case "Arizona":
stateab = "AZ";
break;
case "Arkansas":
stateab = "AR";
break;
case "California":
stateab = "CA";
break;
case "Colorado":
stateab = "CO";
break;
case "Connecticut":
stateab = "CT";
break;
case "Delaware":
stateab = "DE";
break;
case "DENIED":
stateab = "DENIED";
break;
case "District of Columbia":
stateab = "DC";
break;
case "Florida":
stateab = "FL";
break;
case "Georgia":
stateab = "GA";
break;
case "Hawaii":
stateab = "HI";
break;
case "Idaho":
stateab = "ID";
break;
case "Illinois":
stateab = "IL";
break;
case "Indiana":
stateab = "IN";
break;
case "Iowa":
stateab = "IA";
break;
case "Kansas":
stateab = "KS";
break;
case "Kentucky":
stateab = "KY";
break;
case "Louisiana":
stateab = "LA";
break;
case "Maine":
stateab = "ME";
break;
case "Maryland":
stateab = "MD";
break;
case "Massachusetts":
stateab = "MA";
break;
case "Michigan":
stateab = "MI";
break;
case "Minnesota":
stateab = "MN";
break;
case "Mississippi":
stateab = "MS";
break;
case "Missouri":
stateab = "MO";
break;
case "Montana":
stateab = "MT";
break;
case "Nebraska":
stateab = "NE";
break;
case "Nevada":
stateab = "NV";
break;
case "New Hampshire":
stateab = "NH";
break;
case "New Jersey":
stateab = "NJ";
break;
case "New York":
stateab = "NY";
break;
case "North Carolina":
stateab = "NC";
break;
case "North Dakota":
stateab = "ND";
break;
case "Ohio":
stateab = "OH";
break;
case "Oklahoma":
stateab = "OK";
break;
case "Oregon":
stateab = "OR";
break;
case "Pennsylvania":
stateab = "PA";
break;
case "Rhode Island":
stateab = "RI";
break;
case "South Carolina":
stateab = "SC";
break;
case "South Dakota":
stateab = "SD";
break;
case "Tennessee":
stateab = "TN";
break;
case "Texas":
stateab = "TX";
break;
case "Utah":
stateab = "UT";
break;
case "Vermont":
stateab = "VT";
break;
case "Virginia":
stateab = "VA";
break;
case "Washington":
stateab = "WA";
break;
case "West Virginia":
stateab = "WV";
break;
case "Wisconsin":
stateab = "WI";
break;
case "Wyoming":
stateab = "WY";
break;
}
Console.WriteLine(stateab);
Run Code Online (Sandbox Code Playgroud)
最后一行给出了一个错误,指出变量在当前上下文中不存在.有任何想法吗?
编译器要求您确保stateab
在读取变量之前为变量分配了一些值.在您的情况下,您需要满足值case
不满足任何子句的情况s
(即使您的应用程序的逻辑无法做到这一点).
您可以通过stateab
使用初始值初始化变量来轻松地解决它:
string stateab = "";
Run Code Online (Sandbox Code Playgroud)
......或default
在你的switch
陈述中加入一个条款:
case "Wyoming":
stateab = "WY";
break;
default:
stateab = "Unknown";
break;
Run Code Online (Sandbox Code Playgroud)