从同一交换机vb.net中的Cases跳转

时间:2018-08-14 15:21:33

标签: vb.net select-case

我正在开发一个游戏,我需要从Case跳到另一个。例如,如果玩家在方框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`

2 个答案:

答案 0 :(得分:1)

请花点时间阅读有关[mcve]的信息。就目前而言,您提供的代码似乎对您的问题没有任何帮助。

尽管猜测是一个答案,但是您可以将Case 9块中的代码提取到它自己的Sub中,然后从Case 9块和{{1}中的适当点进行调用}块。优雅的解决方案,但这可能是您唯一的选择。

因此,看一个例子,假设您的代码看起来像这样

Case 5

您可以像这样在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

答案 1 :(得分:0)

如果我得到的是您要的内容,例如goto语句(在VB.NET中不可用)。这也表明设计不佳,因此我可以提出一个重构的想法。

播放器对象可能包含一个move子,在移动空格时会调用该子。此move也可能引发一个事件。化身对象可以包含一个moveListener子项,该子项侦听要引发的move事件,并具有switch语句以确定如何处理化身运动。由于VB.NET事件可以包含参数,因此播放器移动到的空间可以包含在参数中;这样就产生了一种事件处理设计,其中玩家的动作被视为一个事件,并且化身对此发生反应

相关问题