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


В выражениях Case оператора Select используются операнды типа Object; может произойти ошибка времени выполнения

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

Operands of type Object used in expressions for 'Select', 'Case' statements; runtime errors could occur

Конструкция Select...Case использует одно или несколько выражений типа Тип данных Object.

Когда переменная или выражение вычисляется как Object, компилятор должен осуществить позднее связывание, что вызывает дополнительные операции во время выполнения. Коме того, возможно возникновение ошибок времени выполнения. Например, если назначить Form для переменной Object и попытаться сравнить ее с числом, то среда выполнения создаст InvalidCastException, так как Visual Basic не может преобразовать объект Form в числовое значение.

Выражения в конструкции Select...Case должны быть одного типа данных или тесно связанных типов, которые могут быть преобразованы друг к другу. Это обусловлено тем, что каждая инструкция Case сравнивает хотя бы одно значение с тестовым выражением, на котором основана конструкция Select...Case.

По умолчанию это сообщение является предупреждением. Дополнительные сведения о скрытии предупреждений или их обработке как ошибок см. в разделе Настройка предупреждений в Visual Basic.

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

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

  • Если это возможно, упорядочите все выражения для вычисления типов данных, для которых определены операторы сравнения.

См. также

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

Арифметические операторы в Visual Basic

Операторы сравнения в Visual Basic

Ссылки

Оператор Select...Case (Visual Basic)