2012-01-20 74 views
0

我有一些語法問題。我習慣了C#,剛開始VB.NET。當它循環遍歷列表中的項目時,我試圖執行while循環。我做錯了什麼語法?雖然在VB.NET中循環

While oResponse.outputControl.Items(i) <> Nothing 

    //Do something 

End While 
+0

你會得到什麼錯誤? – SLaks

+3

問題是<>沒有任何部分,嘗試是沒有代替。 – alundy

+0

運營商'<>'沒有爲類型'System.Web.UI.Webcontrols.ListItem'和'System.Web.UI.WebControls.ListItem'定義' – cjohnson2136

回答

5

不要忘了你的遞增計數器:

While oResponse.outputControl.Items(i) <> Nothing 

    'Do something 
    i += 1 

End While 

如果這是一個參考類型(你d idn't說,但它可能是),則無法將其與<>操作比較Nothing

While oResponse.outputControl.Items(i) IsNot Nothing 

    'Do something 
    i += 1 

End While 

但你真正想要的是什麼,也許是一個For Each循環:

For Each Item In oResponse.outputControl.Items 
    'Do Something 
Next Item 

還有一件事:oResponse變量中的匈牙利疣有什麼特點?這種風格不再被推薦,現在微軟甚至特別推薦它。 VB.Net也有一個名爲「默認屬性」的功能,它可能會使這更簡單。綜合起來(現在包括上面評論中的ListItem類型):

For Each Item As ListItem In Response.outputControl 
    'Do Something 
Next Item 
+0

「還有一件事:oResponse變量中的匈牙利疣是怎麼回事?」不是我的代碼。我昨天剛開始編寫代碼。現在我專注於功能,然後回頭去改變所有這些東西。 – cjohnson2136

0

嘗試:

While oResponse.outputControl.Items(i) Is Nothing 

    'do something 

End While 

你也可以這樣做,如果你想成爲特別的老同學:

Do 

    'do something 

Loop Until Not oResponse.outputControl.Items(i) Is Nothing