从同一交换机 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 中的案例跳转 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

VB.net可以多线程控制同一个窗体及其控件吗

如何从 C# 读取 VB.NET 项目中的“app.config”文件

如何将公共事件从 c# 转换为 vb.net [关闭]

使用手机从 vb.net 应用程序发送短信 [关闭]

引用包含在同一 VB.NET 项目中的用户控件

vb.net 中的快速 OCR [关闭]