为什么我得到变量未找到错误?

时间:2016-04-28 16:05:27

标签: vb.net

我的代码中出现未声明的变量错误,我不知道为什么!变量在上面声明,但在使用时,找不到它们!有问题的错误发生在有两颗星的变量上

    If hour >= 10 Then
        Dim hourAnn = My.Resources.ResourceManager.GetObject("_" + hour.ToString)
    Else
        Dim hourAnn = My.Resources.ResourceManager.GetObject("_0" + hour.ToString)
    End If

    If minute >= 10 Then
        Dim minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString)
    Else
        Dim minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString)
    End If

    'Ann Type
    If annType = 1 Then
        My.Computer.Audio.Play(My.Resources.nowApproachPlatform, AudioPlayMode.WaitToComplete)  'The train now approaching platform
        My.Computer.Audio.Play(platformAnn, AudioPlayMode.WaitToComplete)                       'x
        My.Computer.Audio.Play(My.Resources.isThe, AudioPlayMode.WaitToComplete)                'is the
        My.Computer.Audio.Play(**hourAnn**, AudioPlayMode.WaitToComplete)                '<hour>
        My.Computer.Audio.Play(**minuteAnn**, AudioPlayMode.WaitToComplete)                '<min>

1 个答案:

答案 0 :(得分:4)

变量仅在其创建范围内已知。

如果您在if - 结构中创建变量,则只能在if内知道它们。 functionsfor - 循环和任何其他&#34;相同的计数&#34;结构。

代码解决方案:

Dim hourAnn = ""
 If hour >= 10 Then
        hourAnn = My.Resources.ResourceManager.GetObject("_" + hour.ToString)
    Else
        hourAnn = My.Resources.ResourceManager.GetObject("_0" + hour.ToString)
    End If

Dim minuteAnn = ""
If minute >= 10 Then
    minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString)
Else
    minuteAnn = My.Resources.ResourceManager.GetObject("_" + minute.ToString)
End If

想了解更多? enter image description here