2012-11-18 67 views
0

我想了解爲什麼我的條件if語句給我一個編譯錯誤。 這是不正確的?內聯,如果statament確定i ++或i--遞增for循環

for(int i=startAt; i>=_itemsList.Count; length < 0 ? i-- : i++;) 
{ 

} 
+2

確切的錯誤是什麼?你到底有什麼額外的';'? – zerkms

+0

我加了;只是爲了看看它是否會在那裏工作 - 但它原來並不存在 – user1060500

+0

錯誤CS0201:只能將賦值,調用,增量,減量和新對象表達式用作語句(CS0201) – user1060500

回答

7

按照MSDN應該的錯誤消息,說的話之一:

  • 賦值語句的方法

  • 前綴或後綴增量表達

  • 調用,如++ i或i ++

  • 前綴或後綴減量表達,如--I或我 -

  • 通過使用新

  • 創建的對象的等待表達

一個怪異編譯解決方案將是:

i += length < 0 ? -1 : 1 
+0

良好的解決方法。 –

+0

這不是一種解決方法。我也讀過這個文檔。我真的需要知道的是我怎麼能有一個條件迭代,這將是++(向前)或 - (反向)在C#取決於某些條件? – user1060500

+0

@ user1060500:這**是**解決方法。我的表情確實是你想要的,並且在語法上是正確的 – zerkms

0

最好的答案是zerkms,但應該工作的另一個解決方案。

int dummy = 0; 
for(int i=startAt; i>=_itemsList.Count; dummy++) 
{ 
    // Do your thing 
    length < 0 ? i-- : i++; 
}