如何从开关中的方法访问返回的参数值?

时间:2019-02-27 00:19:05

标签: c#

公共静态int Add(int param1)     {         bool isFound = false;

    for (int subscript = 0; subscript < itemArray.Length; subscript++)
    {
        if (param1 != itemArray[subscript] && isFound==false && itemArray[subscript]==-1)
        {
            itemArray[subscript] = itemArray[subscript] + param1;
            isFound = true;
            subscript = itemArray.Length;
        }
    }
    if (isFound == false)
        return param1 = -2;
    else
        return param1 = -1;
}

//第一个返回参数的代码在上面

开关(选项)             {                 情况“ A”:
                    如果(== 0)                         Console.WriteLine(“成功,未找到重复项”);                     其他                         Console.WriteLine(“失败,数组已满”);
                    打破;                 默认:                     打破;             }

//上面的第二个代码。我如何在该if语句中使用返回的值

1 个答案:

答案 0 :(得分:1)

我会尽力帮助解决这个问题。首先,我将尝试重述该问题并分析您的代码。其次,我将提供一个或两个答案。

  1. 据我所知,您想从函数中获得回报:

private static int Add(int param1)

然后在开关中使用它

    switch(option)
    {
         case "A":
              if(/*numFromAdd*/ == 0)
                   //true do thing
              else
                   //false do other thing
    }

希望我能正确理解你。

  1. 您可以通过两种方式解决此问题。

1,您可以将Add方法更改为如下所示: private static int Add(int param1, out int param2);

然后按如下所示调用函数:

    int oParam = 0;
    int rtnFromAdd = Add(0, out oParam2);

这将执行两件事:1您将以正常函数的形式返回int,但是您还可以将oParam设置为函数中所需的值。这是通过引用传递的,您正在更改要在以后使用的函数中的外部变量。

然后将oParam2变量放入if语句中。

  1. 您也许可以直接在if语句中使用该方法。我不确定是否可以通过这种方式使用静态函数,但是值得一试: 更新:您可以在切换之前调用Add函数以获取值

    int outputOfAdd = Add(param1);//ensure that param1 is the variable you want to check
    switch(option)
    {
        case "A":
            if(outputOfAdd == 0)
                //True do thing
            else
                //False do other thing
    }
    

    希望这对您有帮助