是否有 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 替代方案?