0

IterationメソッドのiがIteration()の戻り値である必要があります。...現時点では、戻り値がないと言ってエラーになっています。forステートメントにあるので仮定します。

using System;

class Program
{
int i = 1;

static string globalValue = "I was declared outside any method";

static void Main()
{
    for (int b = 0; b < 101; b++)
    {
        Console.Write(Iteration());
    }
}
static string FizzBuzz()
{
    string f = "word1";

    return f;
}
static string Buzz()
{
    string b = "word2";

    return b;
}
static int Iteration()
{
    for (int i = 0; i < 101; i++)
    {
        return i;
    }



}

}

4

2 に答える 2

4

C#コンパイラには、関数が常に値を返すかどうかを判断するためにコードをナビゲートする機能が制限されています。あなたが書いたコード常に返されますが、コンパイラはそれを理解するのに「十分に賢い」わけではありません。

return -1;コンパイラーを満たすために、ループの後に関数の最後にaを置くだけです。

Iteration()もちろん、あなたが今持っているコードは、いつものように、あまり意味がありません0。関数は1つの値しか返すことができないため、ループ全体を通過することはありません。(イテレータブロックは構文上の例外ですが、実際の例外ではありません)。

于 2012-06-25T03:44:04.590 に答える
0

コンパイルせずに、反復関数がすべてのコード パスが整数を返さないと不平を言っていると言っている場合、それは戻り値が for に含まれているためであり、コンパイラはループが実際に実行されるかどうかを知りません。 . 多分:

static int Iteration()
{
   int retValue = 0;     // some default value
   for (int i = 0; i < 101; i++)
   {
       retValue = i;
       break;         // break when you get the iteration you want           
   }

   return retValue;
}

コードはあまり意味がありませんが、問題なく動作するはずです。

于 2012-06-25T03:48:11.817 に答える