Nie można wywnioskowania wspólnego typu dla pierwszych i drugich operandów operatora binarnego "If"

Nie można wywnioskowania wspólnego typu dla pierwszego i drugiego operandów operatora binarnego "If". Jedna z nich musi mieć konwersję rozszerzającą na drugą.

Operator binarny If wymaga, aby istniała konwersja rozszerzająca między jednym z argumentów a drugim argumentem. Na przykład, ponieważ nie istnieje konwersja rozszerzająca w obu kierunkach między Integer i String, poniższy kod powoduje ten błąd.

Dim first? As Integer
Dim second As String = "First is Nothing"
'' Not valid.
' Console.WriteLine(If(first, second))

Identyfikator błędu: BC33110

Aby poprawić ten błąd

  • Podaj jawną konwersję dla jednego z operandów, jeśli jest to możliwe w kodzie:

    Console.WriteLine(If(first, CInt(second)))
    
  • Zapisz ponownie kod przy użyciu innej konstrukcji warunkowej.

    If first IsNot Nothing Then
        Console.WriteLine(first)
    Else
        Console.WriteLine(second)
    End If
    

Zobacz też