2015-10-09 4 views
0

Итак, я новичок в VB.Net и все еще немного сердито работаю без точки с запятой, но это нормально. Я работаю. Любые советы приветствуются!Есть ли альтернатива VB.Net для пропуска контрольного блока без GoTo Next?

Я получил эту функцию:

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 

Потому что следующий не может выйти из, если условие блока в петлевой блок для-.

Но я все еще хочу это сделать.

В этом случае есть один большой аргумент. Чтобы игнорировать все, потому что разница во времени на недавно выпущенных ПК может быть даже не заметна. (Около 1 секунды). Но я игнорирую это, потому что

как есть, это просто не имеет смысла обрабатывать код, в котором я не нуждаюсь.

Если есть альтернатива для второй версии кода, не включающей GoTo Line (это не так много, как многие говорят, но все еще высказывание), я был бы рад услышать.

Спасибо заранее!

+1

вы хотите [ 'Continue' заявление] (https: //msdn.micr osoft.com/en-us/library/801hyx6f.aspx). –

ответ

0

Продолжить Для

Как: Перейти к следующей итерации цикла (Visual Basic) 1

0

Это не совсем ясно, где вы хотите, чтобы ваш поток программы идти в этом случае, но выбор либо из:

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

+0

спасибо. – Maxwell