2014-09-22 24 views
0

一直快樂地寫這樣的代碼:Visual Studio中突然要我申報循環迭代

For idtArticles = 0 To dtArticles.Rows.Count - 1 

這:

If request.QueryString.HasKeys() Then 
    For Each parameter In request.QueryString.AllKeys 
     requestVars.Add(parameter, request.QueryString(parameter)) 
    Next 
Else... 

突然不能編譯,並給予錯誤

錯誤34'idtArticles'未被聲明。由於其保護級別,可能無法訪問。 ..userAccountModel.vb

哪些假設我不能回到我的懶辦法是罰款編輯爲

For idtArticles as Integer 

但我不知道什麼exampple請求集合,將宣佈as ..

錯誤39'參數'是一種類型,不能用作 表達式。 ..userAccountModel.vb

我該如何讓它回到不關心的地步?另外如果沒有,我應該怎麼樣Parameter那麼​​?

我檢查過並且Option Strict已關閉。在工具..默認項目設置。

謝謝!

+0

是否dtArticles是公開的? – Max 2014-09-22 19:34:03

+0

['''Parameter'是一個類型...'](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.parameter(v = vs.110).aspx)使用類似'p'或'parm'的東西,它應該可以工作。 VS/VB **可能會**與您在代碼中做什麼混淆的事實應該讓您暫停關於Option Strict Off。值得注意的是,Option Infer會允許'For idtArticles = 0';類型可以從上下文推斷 – Plutonix 2014-09-22 19:41:48

+0

@max dtArticles被聲明只是瞬間之前,不可用外部Sub – bendecko 2014-09-22 19:50:20

回答

3

從微軟文檔上Option Infer Statement

當您設置選項推斷,你可以聲明局部變量 沒有明確說明的數據類型。編譯器根據其初始化表達式的類型推斷出變量的數據類型 。

我會在你的代碼文件的頂部試試這個:

Option Infer On 

,或者你可以在我的項目更改此 - >編譯 - 選項推斷,正確的選項下的嚴格!

enter image description here

+0

是的,就是這樣。錯誤1:我正在查看Option Strict。錯誤2:我正在查看工具中的默認值..選項...一旦創建的項目設置爲這個答案。謝謝大家! – bendecko 2014-09-22 20:46:34

+1

+1非常好。我不知道,因爲我總是宣佈我的變數。 – 2014-09-22 21:04:02