Es kann kein gemeinsamer Typ für den ersten und zweiten Operanden des binären If-Operators abgeleitet werden.

Es kann kein gemeinsamer Typ für den ersten und zweiten Operanden des binären If-Operators abgeleitet werden. Für einen muss eine erweiternde Konvertierung in den anderen durchgeführt werden.

Der binäre If -Operator erfordert, dass zwischen einem der Argumente und dem anderen Argument eine erweiternde Konvertierung erfolgt. Da z. B. zwischen Integer und Stringin beide Richtungen keine erweiternde Konvertierung durchgeführt wird, verursacht folgender Code diesen Fehler.

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

Fehler-ID: BC33110

So beheben Sie diesen Fehler

  • Stellen Sie eine explizite Konvertierung für einen der Operanden bereit, wenn dies in Ihrem Code möglich ist:

    Console.WriteLine(If(first, CInt(second)))
    
  • Verwenden eine andere bedingte Konstruktion, um den Code neu zu schreiben.

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

Siehe auch