Как получить функции, чтобы не оценить возврат до конца - PullRequest
0 голосов
/ 09 января 2012

В моей программе есть функции, которые останавливаются после того, как она достигает строки возврата, но мне нужно, чтобы функция продолжалась в случае, если я хочу, чтобы функция возвращала изменения.

Есть ли обходной путь для этого или способ заставить функцию продолжить после возврата?

Я сделал тестовую программу, чтобы продемонстрировать проблему. Это форма, которая содержит только кнопку.

Вот исходный код:

Private Sub btnTest_Click(sender As System.Object, e As System.EventArgs) Handles btnTest.Click
    If testFunction() = True Then
        MsgBox("It returned True!")
    Else
        MsgBox("It returned False!")
    End If
End Sub

Function testFunction() As Boolean
    Dim testVariable As Boolean = True
    Return False
    If testVariable = True Then
        Return True
    End If
End Function

Окно сообщения всегда говорит: «Возвращено неверно», если, если бы оно продолжало проходить код, как я хочу, оно вернуло бы true.

Ответы [ 3 ]

2 голосов
/ 09 января 2012

У вас уже установлена ​​переменная-флаг, поэтому используйте ее!

Function testFunction() As Boolean
    Dim testVariable As Boolean = True
    testVariable = False

    Return testVariable
End Function

Кроме того, никогда не используйте = True или = False в сравнениях.= True является 100% избыточным и x = False должно быть Not x.


РЕДАКТИРОВАТЬ: Извините, это не ясно.

If x = True Then
    ' ...
End If

всегда * совпадает с

If x Then
    ' ...
End If
0 голосов
/ 11 января 2012

Вы также можете сделать:

Function testFunction() As Boolean
  Dim testVariable As Boolean = True
  Return testVariable
End Function

Так как testVariable является логическим значением, а тип возвращаемого значения - логическим.

0 голосов
/ 09 января 2012
Private Sub btnTest_Click(sender As System.Object, e As System.EventArgs) Handles btnTest.Click
    If testFunction() Then
        MsgBox("It returned True!")
    Else
        MsgBox("It returned False!")
    End If
End Sub  

Function testFunction() As Boolean
  Dim testVariable As Boolean = True
    If testVariable Then
        Return True
    End If
    Return False
End Function
...