Der erste Operand in einem binären 'If'-Ausdruck muss ein Typ, der NULL-Werte zulässt, oder ein Referenztyp sein
Aktualisiert: November 2007
First operand in a binary 'If' expression must be nullable or a reference type
Ein If-Ausdruck kann entweder zwei oder drei Argumente verarbeiten. Wenn Sie nur zwei Argumente verwenden, muss das erste Argument ein Referenztyp oder ein Typ sein, der NULL-Werte zulässt. Wenn die Auswertung des ersten Arguments etwas anderes als Nothing ergibt, wird der Wert zurückgegeben. Wenn die Auswertung des ersten Arguments Nothing ergibt, wird das zweite Argument ausgewertet und zurückgegeben.
Der folgende Code enthält beispielsweise zwei If-Ausdrücke, einen mit drei und einen mit zwei Argumenten. Von beiden Ausdrücken wird der gleiche Wert berechnet und zurückgegeben.
' firstChoice is a nullable value type.
Dim firstChoice? As Integer = Nothing
Dim secondChoice As Integer = 1128
' If expression with three arguments.
Console.WriteLine(If(firstChoice IsNot Nothing, firstChoice, secondChoice))
' If expression with two arguments.
Console.WriteLine(If(firstChoice, secondChoice))
Dieser Fehler wird durch die folgenden Ausdrücke verursacht:
Dim choice1 = 4
Dim choice2 = 5
Dim booleanVar = True
' Not valid.
'Console.WriteLine(If(choice1 < choice2, 1))
' Not valid.
'Console.WriteLine(If(booleanVar, "Test returns True."))
Fehler-ID: BC33107
So beheben Sie diesen Fehler
Wenn Sie den Code nicht so ändern können, dass das erste Argument ein Referenztyp oder ein Typ ist, der NULL-Werte zulässt, ziehen Sie die Umwandlung in einen If-Ausdruck mit drei Argumenten oder in eine If...Then...Else-Anweisung in Betracht.
Console.WriteLine(If(choice1 < choice2, 1, 2)) Console.WriteLine(If(booleanVar, "Test returns True.", "Test returns False."))
Siehe auch
Konzepte
Auf NULL festlegbare Werttypen