2009-06-18 2 views
2
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 слишком неуклюж и не имеет аккуратных небольших функций, которые мне нравятся.)Где недостижимый код?

Надеюсь, я предоставил достаточно информации для кто-то догадывался о проблеме. Я уставился на это, изменил переменные. Все, он не сдвинется с места.

EDIT:

Это после того, как цикл:

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

Я уверен, надеюсь, что этот код является правильным, поскольку я никогда не получал, чтобы проверить это.

+2

Что у вас есть против datarows? – BFree

+0

Что такое после цикла for? –

+0

Я не знаю. Я устал и не хотел появляться с именем. – Mashew

ответ

11

Вы всегда возвращаетесь из цикла прежде, чем перейти к следующей итерации. То есть возвращаются обе половины инструкции if. Вы никогда не возвращаетесь к вершине цикла.

+0

AH! Глупый меня. > _> – Mashew

7

У вас, вероятно, есть break или return (или, не дай бог, goto) внутри петли.

+0

Что у всех есть против Gotos? – IDWMaster

5

Поскольку выполняется одно или другое условие «if» в цикле, гарантируется возврат, и цикл никогда не будет запускать вторую итерацию; таким образом, приращение никогда не произойдет.

Смежные вопросы