如何从切换到返回结果返回?

时间:2018-12-09 15:04:35

标签: c#

如何从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;
        }

enter image description here

5 个答案:

答案 0 :(得分:3)

那是正确的。切换并不一定会导致您遇到一种情况。

需要执行以下两项更改之一:

1)

string s1 = string.Empty; //(provide default value)

2)提供:

switch (str_1)
{
  /*...*/
  default:
    s1 = "...";
    break;

答案 1 :(得分:2)

string s1 = string.Emptystring 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;
    }
}