Поделиться через


Не удается вывести общий тип для второго и третьего операндов оператора If

Обновлен: Ноябрь 2007

Сообщение об ошибке

Не удается вывести общий тип для второго и третьего операнда оператора "If". Один должен иметь расширяющее преобразование к другому.
Cannot infer a common type for the second and third operands of the 'If' operator. One must have a widening conversion to the other.

Если оператор If вызывается с тремя аргументами, необходимо выполнить расширяющее преобразование для второго и третьего аргументов. Например, из-за отсутствия расширяющего преобразования в любом направлении между Integer и String, следующий код вызывает эту ошибку.

Dim divisor = 3
' Not valid.
' Console.WriteLine(If(divisor <> 0, number \ divisor, "Division by zero"))

Идентификатор ошибки: BC33106

Исправление этой ошибки

  • Выполните явное преобразование одного из операндов в коде, если это возможно.

  • Используйте другую условную конструкцию, например, оператор If...Then...Else.

См. также

Основные понятия

Расширяющие и сужающие преобразования

Ссылки

Оператор If

Оператор If...Then...Else (Visual Basic)