Partilhar via


Se operador

Avaliação para retornar condicionalmente um dos dois valores de circuito curto usa.The 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 sistema autônomo um valor que pode ser convertido sistema autônomo um Boolean. QueBoolean valor determinará qual dos outros dois argumentos é avaliado e retornado. A lista a seguir se aplica somente quando o If operador é chamado usando três argumentos.

Partes

  • argument1
    Obrigatório.Boolean.Determina qual dos outros argumentos para avaliar e retornar.

  • argument2
    Obrigatório.Object.Avaliado e retornado se argument1 é avaliada como True.

  • argument3
    Obrigatório.Object.Avaliado e retornado se argument1 é avaliada como False.

An If operador que é chamado com três argumentos funciona como um IIf função exceto que ele usa avaliação de circuito curto. An IIf função sempre avalia todos os três argumentos, enquanto um If operador que possui três argumentos avalia somente dois deles. O primeiro If argumento é avaliado e o resultado é um conversão sistema autônomo um Boolean valor, True ou False. Se o valor é True, argument2 é avaliado e seu valor é retornado, mas argument3 não será avaliada. Se o valor de Boolean expressão é False, argument3 é avaliado e seu valor é retornado, mas argument2 não será avaliada. Os exemplos a seguir ilustram o uso de If Quando são usados 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 de 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 caso, deve retornar a 0 e não deve ser feita nenhuma tentativa para realizar a divisão porque um em time de execução seria resultará em erro.Porque o If avaliação de circuito curto usos de expressão, ele será avaliado o segundo ou terceiro argumento, dependendo do valor do primeiro argumento. Se o primeiro argumento for verdadeiro, o divisor não é zero e é seguro avaliar o segundo argumento e executar a divisão.Se o primeiro argumento for falso, somente o terceiro argumento é avaliado e 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 use avaliação de circuito curto, o segundo argumento é avaliado até mesmo quando o primeiro argumento é falso. Isso faz com que um em time de execução erro divisão por zero.

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 runtime 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 de If pode ser omitido. Isso permite que o operador a ser chamado por meio de apenas dois argumentos.A lista a seguir se aplica somente quando o If operador é chamado com dois argumentos.

Partes

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

  • argument3
    Obrigatório.Object.Avaliado e retornado se argument2 é avaliada como Nothing.

Quando o Boolean argumento for omitido, o primeiro argumento deve ser uma referência ou um tipo que permite valor nulo. Se o primeiro argumento é avaliado como Nothing, o valor do segundo argumento é retornado. Em outros casos, o valor do primeiro argumento é retornado.O exemplo a seguir ilustra como funciona 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

Conceitos

Tipos de Valor Anuláveis.

Referência

Nada (Visual Basic)

Função IIf (Visual Basic)