2016-03-07 60 views
-1

我已經在使用下面的代碼。以下代碼是okey。如何在vb.net中聲明變量?

Private Sub Code1() 
    Try 
     If 1 = 1 Then 'This is not original condition in my project. 
      Label1.Text = "Apple" 
     End If 
     Dim x As Integer = 5 
     Dim y As Integer = 0 
     x = x \ y 
    Catch ex As Exception 
     If Label1.Text = "Apple" Then 
      MsgBox("Error") 
     End If 
    End Try 
End Sub 

我不想把Label1控件放在我的項目上。

因此,我決定用下面的代碼替換上面的代碼。

但下面的代碼給出了這樣的錯誤:http://prnt.sc/ace1bt

Private Sub Code2() 
    Try 
     If 1 = 1 Then 'This is not original condition in my project. 
      Dim k As String 
      k = "Apple" 
     End If 
     Dim x As Integer = 5 
     Dim y As Integer = 0 
     x = x \ y 
    Catch ex As Exception 
     Dim k As String 
     If k = "Apple" Then 
      MsgBox("Error") 
     End If 
    End Try 
End Sub 

所以,我需要一個代碼,而無需使用像Label1的任何形式的控制。

請注意,變量必須位於Try後面。

我打開每一種代碼。謝謝。

+2

警告的哪部分你不明白? – SLaks

+0

第一個塊的工作原因是'Label'在Try和If塊之外聲明。第二次與第一次發佈這個問題**的原因相同。如果/然後創建塊範圍。塊範圍中聲明的內容保留在其中。 Catch中的'k'是一個新的變量,永遠不會等於「apple」可能重複的[引用變量和對象在窗體中的其他位置](http://stackoverflow.com/q/33248704/1070452)。 – Plutonix

回答

0

您需要在方法的頂部聲明變量,而不是所有使用它的塊。

即使您的If從未運行,您也需要爲其指定值(例如,"")。

0

你必須在使用它們之前初始化你的變量。在這種情況下,您可以這樣做:

Dim k As String=""