如何从switch
返回结果return
?
方法1,根据变量“ str_1”的值,选择要执行的其他方法。
我收到一个错误:
“使用未分配值的局部变量” s1”。
代码
public string Method1(string str_1)
{
string s1;
switch (str_1)
{
case "type_1":
s1 = MethodTest();
break;
}
return s1;
}
public string MethodTest()
{
string s = "test";
return s;
}
答案 0 :(得分:3)
那是正确的。切换并不一定会导致您遇到一种情况。
需要执行以下两项更改之一:
1)
string s1 = string.Empty; //(provide default value)
2)提供:
switch (str_1)
{
/*...*/
default:
s1 = "...";
break;
答案 1 :(得分:2)
string s1 = string.Empty
或string s1 = null
有人抱怨说,可能无法设置该值,因为不能保证将按下switch-case语句。
答案 2 :(得分:2)
s1
可能从未设置为某个值。如果您在声明字符串时将其设置为默认值,该错误将消失:
string s1 = string.Empty;
答案 3 :(得分:1)
我看到4个选项:
1)string s1= string.Empty;
2)string s1= null;
3)string s1="";
4)您可以进行小的重构:
public string Method1(string str_1)
{
switch (str_1)
{
case "type_1":
return MethodTest();
default:
return string.Empty;
}
}
答案 4 :(得分:0)
您可以避免使用局部变量。只需确定您要在默认情况下返回什么。
public string Method1(string str_1)
{
switch (str_1)
{
case "type_1":
return MethodTest();
default:
return null;
}
}