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


Выражение типа <имяТипа1> никогда не может иметь тип <имяТипа2>

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

Expression of type '<typename1>' can never be of type '<typename2>'

Выражение TypeOf...Is проверяет объектную ссылочную переменную на тип данных, который она хранить не может.

В некоторых случаях компилятор может определить, что тестирование TypeOf...Is может завершиться только ошибкой, например, если нет отношения наследования между двумя классами.

Следующий код может вызвать эту ошибку.

Dim refVar as System.Windows.Forms.Form

If TypeOf refVar Is System.Array

End If

Поскольку Form и Array являются полностью несвязанными типами, компилятор может определить, что выражение TypeOf...Is возвращает False для любого значения refVar.

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

Чтобы исправить эту ошибку

  • Проверяйте переменную на реалистичные типы данных или полностью удалите проверку TypeOf...Is.

См. также

Задачи

Практическое руководство. Определение типа, на который указывает объектная переменная

Ссылки

Оператор TypeOf (Visual Basic)