Не удается определить общий тип для первого и второго операндов бинарного оператора If
Обновлен: Ноябрь 2007
Сообщение об ошибке
Не удается определить общий тип для первого и второго операнда бинарного оператора "If". Один должен иметь расширяющее преобразование к другому.
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.
Бинарный оператор If требует, чтобы существовало расширяющее преобразование между одним из аргументов и другим аргументом. Например, из-за отсутствия расширяющего преобразования в любом направлении между Integer и String, следующий код вызывает эту ошибку.
Dim first? As Integer
Dim second As String = "First is Nothing"
'' Not valid.
' Console.WriteLine(If(first, second))
Идентификатор ошибки: BC33110
Исправление этой ошибки
Обеспечьте явное преобразование одного из операндов, если это возможно в коде:
Console.WriteLine(If(first, CInt(second)))
Перепишите код с помощью различных условных конструкций.
If first IsNot Nothing Then Console.WriteLine(first) Else Console.WriteLine(second) End If
См. также
Основные понятия
Расширяющие и сужающие преобразования