从同一开关中的案例跳转 vb.net
Jump from Cases in the same switch vb.net
我正在构建游戏,我需要从案例跳到另一个案例。例如,如果玩家在方框 5 中,则化身需要移动到方框 9。非常感谢任何帮助。`
Case 5
OBJETO_ATERIOR = R4
OBJETO_ACTUAL = R5
OBJETO_ANTERIOR_INVERSO = R6
'needs to jumpo to Case 9
gif_loro.Visible = False
gif_puppy.Visible = False
gif_mono.Visible = False
gif_oca5.Visible = True`
请花时间阅读有关 [mcve] 的内容。就目前而言,您提供的代码似乎与您的问题无关。
尽管猜测答案,您可以将 Case 9
块中的代码提取到它自己的 Sub 中,并从 Case 9
块和 [= 中的适当点调用它15=] 块。一个不优雅的解决方案,但它可能是您唯一的选择。
所以看一个例子,假设你的代码看起来像这样
Select Case x
Case 1
'case 1 code
Case 2
'case 2 code
Case 3
'case 3 code
Case 4
'case 4 code
Case 5
'case 5 code
'jump to case 9 code
Case 6
'case 6 code
Case 7
'case 7 code
Case 8
'case 8 code
Case 9
'case 9 code
End Select.
您可以像这样在 Case 9
块中创建一个包含您的代码的子程序
Private Sub Case9Code()
'case 9 code
End Sub
现在您可以将 Select Case
块重写为 ..
Select Case x
Case 1
'case 1 code
Case 2
'case 2 code
Case 3
'case 3 code
Case 4
'case 4 code
Case 5
'case 5 code
Case9Code()
Case 6
'case 6 code
Case 7
'case 7 code
Case 8
'case 8 code
Case 9
Case9Code()
End Select.
如果我得到了你想要的东西,那就是 goto
语句(在 VB.NET 中不可用)。这也表明设计不佳,反过来我可以提供重构的想法。
播放器对象可以包含一个 move
子对象,它在移动 space 时被调用。此 move
也可以引发事件。 avatar 对象可以包含一个 moveListener
sub,它侦听要引发的 move 事件,并有一个 switch 语句来确定如何处理 avatar 移动。由于 VB.NET 事件可以包含参数,所以玩家移动到的 space 可以包含在参数中;因此产生了一个事件处理设计,其中玩家移动被视为一个事件并且化身 对其做出反应。
我正在构建游戏,我需要从案例跳到另一个案例。例如,如果玩家在方框 5 中,则化身需要移动到方框 9。非常感谢任何帮助。`
Case 5
OBJETO_ATERIOR = R4
OBJETO_ACTUAL = R5
OBJETO_ANTERIOR_INVERSO = R6
'needs to jumpo to Case 9
gif_loro.Visible = False
gif_puppy.Visible = False
gif_mono.Visible = False
gif_oca5.Visible = True`
请花时间阅读有关 [mcve] 的内容。就目前而言,您提供的代码似乎与您的问题无关。
尽管猜测答案,您可以将 Case 9
块中的代码提取到它自己的 Sub 中,并从 Case 9
块和 [= 中的适当点调用它15=] 块。一个不优雅的解决方案,但它可能是您唯一的选择。
所以看一个例子,假设你的代码看起来像这样
Select Case x
Case 1
'case 1 code
Case 2
'case 2 code
Case 3
'case 3 code
Case 4
'case 4 code
Case 5
'case 5 code
'jump to case 9 code
Case 6
'case 6 code
Case 7
'case 7 code
Case 8
'case 8 code
Case 9
'case 9 code
End Select.
您可以像这样在 Case 9
块中创建一个包含您的代码的子程序
Private Sub Case9Code()
'case 9 code
End Sub
现在您可以将 Select Case
块重写为 ..
Select Case x
Case 1
'case 1 code
Case 2
'case 2 code
Case 3
'case 3 code
Case 4
'case 4 code
Case 5
'case 5 code
Case9Code()
Case 6
'case 6 code
Case 7
'case 7 code
Case 8
'case 8 code
Case 9
Case9Code()
End Select.
如果我得到了你想要的东西,那就是 goto
语句(在 VB.NET 中不可用)。这也表明设计不佳,反过来我可以提供重构的想法。
播放器对象可以包含一个 move
子对象,它在移动 space 时被调用。此 move
也可以引发事件。 avatar 对象可以包含一个 moveListener
sub,它侦听要引发的 move 事件,并有一个 switch 语句来确定如何处理 avatar 移动。由于 VB.NET 事件可以包含参数,所以玩家移动到的 space 可以包含在参数中;因此产生了一个事件处理设计,其中玩家移动被视为一个事件并且化身 对其做出反应。