Compartilhar via


Operador If (Visual Basic)

Avaliação para condicionalmente retornar um entre dois valores de circuito curto usos. O If operador pode ser chamado com três argumentos ou com dois argumentos.

If( [argument1,] argument2, argument3 )

Se o operador chamado com três argumentos

Quando If é chamado usando três argumentos, o primeiro argumento deve ser avaliada como um valor que pode ser convertido como um Boolean. Que Boolean valor determinará qual dos dois argumentos é avaliado e retornado. A lista a seguir se aplica somente quando o Ifé chamado de operador usando três argumentos.

Partes

Termo

Definição

argument1

Necessário. Boolean. Determina qual dos outros argumentos para avaliar e retornar.

argument2

Necessário. Object. Avaliado e retornado se argument1 for avaliada como True.

argument3

Necessário. Object. Avaliado e retornado se argument1 for avaliada como False ou se argument1 é um NullableBooleanvariável que é avaliada como nada.

Um If operador , o que é chamado com três argumentos funciona como um IIf função exceto que ele usa avaliação de circuito curto. Um IIf função sempre avalia todas as três dos seus argumentos, enquanto um Ifo operador que possui três argumentos avalia somente dois deles. O primeiro If argumento é avaliado e o resultado é um conversão como um Boolean valor, True ou False. Se o valor for True, argument2 é avaliada e seu valor é retornado, mas argument3 não será avaliada. Se o valor da Boolean a expressão é False, argument3 é avaliada e seu valor é retornado, mas argument2 não será avaliada. Os exemplos a seguir ilustram o uso de If quando são usados os três argumentos:

' This statement prints TruePart, because the first argument is true.
Console.WriteLine(If(True, "TruePart", "FalsePart"))

' This statement prints FalsePart, because the first argument is false.
Console.WriteLine(If(False, "TruePart", "FalsePart"))

Dim number = 3
' With number set to 3, this statement prints Positive.
Console.WriteLine(If(number >= 0, "Positive", "Negative"))

number = -1
' With number set to -1, this statement prints Negative.
Console.WriteLine(If(number >= 0, "Positive", "Negative"))

O exemplo a seguir ilustra o valor da avaliação de circuito curto. O exemplo mostra duas tentativas para dividir a variável number pela variável divisor exceto quando divisor é zero. Nesse maiúsculas e minúsculas, deve ser retornado um 0 e deve ser feita nenhuma tentativa para realizar a divisão porque resultaria um erro em tempo de execução. Porque o If avaliação de circuito curto usos de expressão, ele avalia o segundo ou terceiro argumento, dependendo do valor do primeiro argumento. Se o primeiro argumento for true, o divisor não é zero e é seguro avaliar o segundo argumento e realizar a divisão. Se o primeiro argumento for falso, apenas o terceiro argumento é avaliado e um 0 é retornado. Portanto, quando o divisor for 0, nenhuma tentativa é feita para realizar a divisão e nenhum resultado do erro . No entanto, como IIf não usa avaliação de circuito curto, o segundo argumento é avaliado, mesmo quando o primeiro argumento é falso. Isso faz com que uma divisão de tempo de execução-por-errodozero.

number = 12

' When the divisor is not 0, both If and IIf return 4. 
Dim divisor = 3
Console.WriteLine(If(divisor <> 0, number \ divisor, 0))
Console.WriteLine(IIf(divisor <> 0, number \ divisor, 0))

' When the divisor is 0, IIf causes a run-time error, but If does not.
divisor = 0
Console.WriteLine(If(divisor <> 0, number \ divisor, 0))
' Console.WriteLine(IIf(divisor <> 0, number \ divisor, 0))

Se o operador chamado com dois argumentos

O primeiro argumento para If pode ser omitido. Isso permite que o operador a ser chamado usando apenas dois argumentos. A lista a seguir se aplica somente quando o Ifé chamado de operador com dois argumentos.

Partes

Termo

Definição

argument2

Necessário. Object. Deve ser uma referência ou tipo que permite valor nulo. Avaliado e retornado quando avaliada como algo diferente de Nothing.

argument3

Necessário. Object. Avaliado e retornado se argument2 for avaliada como Nothing.

Quando o Boolean argumento for omitido, o primeiro argumento deve ser uma referência ou tipo que permite valor nulo. Se o primeiro argumento é avaliado como Nothing, será retornado o valor do segundo argumento . Em outros casos, o valor do primeiro argumento é retornado. O exemplo a seguir ilustra como funciona a essa avaliação.

' Variable first is a nullable type. 
Dim first? As Integer = 3
Dim second As Integer = 6

' Variable first <> Nothing, so its value, 3, is returned.
Console.WriteLine(If(first, second))

second = Nothing 
' Variable first <> Nothing, so the value of first is returned again.
Console.WriteLine(If(first, second))

first = Nothing
second = 6
' Variable first = Nothing, so 6 is returned.
Console.WriteLine(If(first, second))

Consulte também

Referência

Nada (Visual Basic)

IIf

Conceitos

Tipos de valor que permitem valor nulo (Visual Basic)