我的代码中出现未声明的变量错误,我不知道为什么!变量在上面声明,但在使用时,找不到它们!有问题的错误发生在有两颗星的变量上
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>
答案 0 :(得分:4)
变量仅在其创建范围内已知。
如果您在if
- 结构中创建变量,则只能在if
内知道它们。 functions
,for
- 循环和任何其他&#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