方法返回错误

时间:2014-04-11 04:58:52

标签: c# arrays methods return-type

嗨我在返回avg时收到错误;如果任何人都可以帮我解决我的问题,那么返回键不能跟着对象表达。我非常感激。

    static void Pos(int[] array)
    {
        Random rand = new Random();
        float sum = 0;
        int counter = 0;
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = rand.Next(-100, 100);
            if(sum >= 0)
            {
                sum += array[i];
                counter++;
            }
            float avg = sum / counter;
            return avg; <<< error?
        }
    }

3 个答案:

答案 0 :(得分:4)

由于您的返回类型为void

,因此无法返回任何内容

将此static void Pos(int[] array)更改为static float Pos(int[] array)

此外,您可能会得到&#34;并非所有代码路径返回&#34;;

这样做:

static float Pos(int[] array)
    {
        Random rand = new Random();
        float sum = 0;
        int counter = 0;
        float avg;
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = rand.Next(-100, 100);
            if(sum >= 0)
            {
                sum += array[i];
                counter++;
            }
            avg = sum / counter;
        }
        return avg;
    }

答案 1 :(得分:1)

您的方法的返回类型为void,您将从中返回一个值。

这样做:

static float Pos(int[] array)
{
    Random rand = new Random();
    float sum = 0;
    int counter = 0;
    float avg = 0;
    for (int i = 0; i < array.Length; i++)
    {
        array[i] = rand.Next(-100, 100);
        if(sum >= 0)
        {
            sum += array[i];
            counter++;
        }
        avg = sum / counter;

    }
    return avg;
}

当您将返回类型设置为 void 时,表示您不希望该方法返回任何内容。

答案 2 :(得分:1)

您使用的空白不允许您返回任何内容。