【问题标题】:Where is the unreachable code?无法访问的代码在哪里?
【发布时间】:2009-06-18 01:55:40
【问题描述】:
int x;
int iHateDataRows = dt.Rows.Count + 2;
System.Data.DataRow[] dra = new System.Data.DataRow[1000];

for(x = 0; x < iHateDataRows; ++x)

所以,这显然是一个循环,但我的问题是 ++x 告诉我它无法访问。我不知道这是否只是我的 IDE 疯了还是什么(我使用 SharpDevelop,主要是因为 VS2008 太笨重而且没有我喜欢的整洁的小功能。)

我希望我提供了足够的信息,以便有人猜测问题。我一直盯着这个东西,改变了变量。一切,它不会让步。

编辑:

这是在for循环之后:

if(dra[x].ItemArray[2].ToString() == "0")
{
    return x.ToString();
}
else
{
    return "Fail";
}

我当然希望这段代码是正确的,因为我从来没有测试过。

【问题讨论】:

  • 你对数据行有什么看法?
  • 我不知道。我累了,不想起个名字。
  • for 循环中有什么?

标签: c# for-loop sharpdevelop


【解决方案1】:

您总是在循环进入下一次迭代之前从循环中返回。也就是说,“if”语句的两半都返回。你永远不会回到循环的顶部。

【讨论】:

    【解决方案2】:

    您可能在循环内有一个breakreturn(或者,天堂禁止,goto)。

    【讨论】:

    • 大家对Gotos有什么看法?
    【解决方案3】:

    由于循环中的一个或另一个“if”子句将被执行,因此保证会发生返回,并且循环将永远不会运行第二次迭代;因此,增量永远不会发生。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多