vb.net VS 2015中的变量声明失败

时间:2015-09-18 20:12:43

标签: vb.net variables visual-studio-2015

VB in VS 2015.此代码失败。当代码停止时,布尔值和整数都没有值。错误消息是“BC30451:未声明。它可能无法访问,因为......”。也许这是微软的方式告诉我,我是一个不在C#编码的白痴?任何人都知道为什么会失败?

Shared Sub test()
    Dim N As Boolean = False
    Dim i As Integer = 5
    Stop  ' Neither N nor I are accessible
End Sub

[编辑 - 添加评论代码]

Private Sub cmdSaveAll_Click(sender As Object, e As EventArgs) Handles cmdSave1.Click
    Dim N As Boolean = False 
    Dim i As Integer = 5 
    Dim ss As String = "xxxx" 
    Stop ' Neither N nor I nor ss are accessible 
End Sub

2 个答案:

答案 0 :(得分:1)

如果您从不使用变量,Visual Studio足够聪明,不会将其添加到堆栈中。对于从未在程序中调用的子例程也是如此 - 它们不会添加到可执行文件中。

试试这个:

Shared Sub test()
    Dim N As Boolean = False
    Dim i As Integer = 5
    If N Then
      Console.WriteLine("This line will never be hit.")
    Else
      Console.WriteLine(i)
    End If
End Sub

或者,您可以在例程之外声明变量,以便它们在其他地方具有范围。

Private N As Boolean
Private i As Integer

Private Sub cmdSaveAll_Click(sender As Object, e As EventArgs) Handles cmdSave1.Click
    N = False 
    i = 5 
End Sub

Shared Sub test()
    If N Then
      Console.WriteLine("This line will be hit if N is changed in another method.")
    Else
      Console.WriteLine(i)
    End If
End Sub

答案 1 :(得分:0)

我没有解决方案,但问题必须出在正在开发的应用程序或2015年的错误中。我创建了一个新项目,这段代码运行得很好。

新信息:我处于发布模式。切换到调试修复了问题。然而,我已经在发布模式下开发了相当长的一段时间,所以我不知道这是一个错误还是意图,我以前从未遇到过这个问题。嗯,最奇怪的。