是否有 VB.Net 替代方案可以跳过没有 GoTo Next 的控制块? [复制]

Posted

技术标签:

【中文标题】是否有 VB.Net 替代方案可以跳过没有 GoTo Next 的控制块? [复制]【英文标题】:Is there a VB.Net alternative to skip a controlblock without GoTo Next? [duplicate] 【发布时间】:2015-10-09 13:04:26 【问题描述】:

所以我是 VB.Net 的新手,在没有分号的情况下工作还是有点脾气暴躁,但没关系。 我正在努力解决问题。 任何建议表示赞赏!

我得到了这个功能:

    friend sub find_in_Array(byval string1 as string, byval string_args* as string)

          try

             Dim x_index_count as integer = 10000
             Dim z_index_count as integer = 10000
             Dim array(x_index_count, z_index_count) As String

             for x = o to x_index_count -1

                 dim my_data(y_index_count) as string

                 if not string.isnullorempty(string1) then
                     if not array(x,y).contains(string1) then GoTo LineNext
                 end if

                 ''// Now Following another 10 checks for additional args* given

                 ListfromClass.Add(my_data)

         LineNext:
                 next

         catch ex as exception

            setSmThnToLogFile(ex.Message)

        end try

    end sub

二维数组轴 X 和 Z 是四舍五入的,但没有高估。 他们通常是我问这个问题的原因。

循环遍历数组并不是我希望我的代码花费的时间。 每一次减少它的机会对我来说都很好。

很遗憾,Visual Basic 不接受此代码版本:

friend sub find_in_Array(byval string1 as string)
      try
         Dim x_index_count as integer = 10000
         Dim z_index_count as integer = 10000
         Dim array(x_index_count, z_index_count) As String

         for x = o to x_index_count -1
             dim my_data(y_index_count) as string

             if not string.isnullorempty(string1) then
                 if not array(x,y).contains(string1) then Next
             end if
         next
     catch ex as exception
        setSmThnToLogFile(ex.Message)
    end try
end sub

因为 Next 无法从 if-condition-block 到达 for-loop-block。

但我还是想做。

这个案子有一个很大的论据。忽略所有内容,因为最近发布的 pc 上的时差甚至可能不明显。 (大约 1 秒)。但是我忽略了这个,因为

事实上,处理我不需要的代码是没有意义的。

如果有不涉及 GoTo Line 的第二版代码的替代方案(这几乎不像许多人所说的那样是魔鬼,但仍然是一种说法),我很高兴听到。

提前致谢!

【问题讨论】:

你想要Continue statement。 【参考方案1】:

继续

如何:跳到循环的下一个迭代 (Visual Basic) 1

【讨论】:

【参考方案2】:

在这种情况下,您希望程序流到哪里并不清楚,但可以选择:

Exit For 'Transfers control out of the For Each loop.

Continue For 'Transfers control to the start of the For Each loop.the next one

您可以在此处找到有关这些的文档:https://msdn.microsoft.com/en-us/library/5ebk1751.aspx

【讨论】:

以上是关于是否有 VB.Net 替代方案可以跳过没有 GoTo Next 的控制块? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

vb.net express 中客户端-服务器应用程序的 WCF 替代方案?

vb.net 仅外部属性或方法

将 VB.NET 2.0 Winform 迁移到 3.5 WPF

是否可以更改 vb.net 中的输入框图标?

VB.NET SendKeys 的替代品

vb.net 中是不是有任何代码来检查打印机状态