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

Aktualisiert: November 2007

Fehlermeldung

Es kann kein gemeinsamer Typ für den ersten und zweiten Operanden des binären 'If'-Operators abgeleitet werden. Ein Operand muss über eine erweiternde Konvertierung auf den anderen verfügen.
Cannot infer a common type for the first and second operands of the binary 'If' operator. One must have a widening conversion to the other.

Der binäre If-Operator erfordert eine erweiternde Konvertierung zwischen einem der Argumente und dem anderen Argument. Da zwischen Integer und String in keiner Richtung eine erweiternde Konvertierung vorhanden ist, verursacht der folgende Code beispielsweise 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, sofern im Code möglich.

    Console.WriteLine(If(first, CInt(second))) 
    
  • Schreiben Sie den Code mit einer anderen bedingten Konstruktion um.

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

Siehe auch

Konzepte

Erweiternde und eingrenzende Konvertierungen

Referenz

Operator If

If...Then...Else-Anweisung (Visual Basic)