有没有办法让这个开关盒?

时间:2016-05-10 14:43:53

标签: c# if-statement switch-statement

我知道如果我有一个参数我可以做切换案例,但我有4个,第三个需要改变。

if (GetoptionsetText("lead", "capg_calculatorutilized", 126350000, service) == "Section A")
        {

        }



        #region Advocacy

        else if (GetoptionsetText("lead", "capg_calculatorutilized", 126350004, service) == "Advocacy")
        {

        }
        #endregion

        #region Partner

        else if (GetoptionsetText("lead", "capg_calculatorutilized", 126350005, service) == "Partner")
        {

        }
        #endregion

当有多个参数时,我无法在线找到任何显示方法的内容。我的第一个想法是创造

string _a = GetoptionsetText("lead", "capg_calculatorutilized", 126350004, service)

但是我没试过,但是我没有尝试过。我应该使用新参数为每个函数重新创建GetoptionsetText函数。那么这将是GetoptionsetText1(,, 126350003)?那会有用吗? 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

不,您正在调用一个方法来获取字符串,并且在这些方法调用中传递的第三个参数在每种情况下都是不同的。

switch语句将针对每个案例值评估一个结果

  

每个案例标签指定一个常量值。 switch语句将控制转移到switch部分,其case标签与switch表达式的值匹配(示例中为caseSwitch)。

https://msdn.microsoft.com/en-GB/library/06tc147t.aspx

答案 1 :(得分:1)

首先,您是否可以将值转换为string,然后使用switch语句?

string value = GetoptionsetText("lead", "capg_calculatorutilized", 126350000, service);

switch(value)
{
    case "Section A":
        // ...
        break;

    case "Advocacy":
        // ...
        break;

    case "Partner":
        // ...
        break;
}

顺便说一句,为什么使用字符串来表示类型?听起来你可能会更好地使用enum