从同一交换机 vb.net 中的案例跳转 [关闭]
Posted
技术标签:
【中文标题】从同一交换机 vb.net 中的案例跳转 [关闭]【英文标题】:Jump from Cases in the same switch vb.net [closed] 【发布时间】:2018-08-14 15:21:32 【问题描述】:我正在构建一个游戏,我需要从 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`
【问题讨论】:
这可能是这个***.com/questions/820104/…的副本 您可以将您的逻辑放在不同的方法中,并根据情况调用方法。说“移至方框 9”有点令人困惑。 【参考方案1】:请花时间阅读有关 [mcve] 的信息。就目前而言,您提供的代码似乎与您的问题无关。
虽然猜测答案,但您可以将 Case 9
块中的代码提取到它自己的 Sub 中,然后从 Case 9
块和 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
块重写为 ..
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.
【讨论】:
【参考方案2】:如果我得到你所问的,你想要什么就像 goto
语句(在 VB.NET 中不可用)。这也表明设计不佳,反过来我可以提供重构的想法。
播放器对象可以包含移动空间时调用的move
sub。这个move
也可以引发一个事件。 avatar 对象可以包含一个moveListener
sub,它监听要引发的 move 事件,并具有一个 switch 语句来确定如何处理 avatar 移动。由于 VB.NET 事件可以包含参数,所以玩家移动到的空间可以包含在参数中;从而产生了一种事件处理设计,其中玩家的移动被视为一个事件,而头像对此作出反应。
【讨论】:
以上是关于从同一交换机 vb.net 中的案例跳转 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章