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


Разрешение вопросов, связанных с исключениями: System.InvalidCastException

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

Исключение InvalidCastException порождается при возникновении сбоя во время преобразования явной ссылки. Ссылки преобразования преобразовывают из одного ссылочного типа в другой. Они могут изменить тип ссылки, но они никогда не изменяют тип или значение элемента, на который указывает ссылка. Приведение объектов из одного типа в другой часто является причиной возникновения этого исключения.

Полезные советы

  • Проверьте назначение исходного типа с конечным типами, чтобы убедиться, что преобразование является допустимым.
    Сведения о преобразованиях, поддерживаемых системой, см. в Convert.

Заметки

При успешном явном преобразовании ссылки, исходным значением должно быть Null (Nothingв Visual Basic), или тип объекта, вызванного с помощью исходного аргумента, должен быть конвертируемым в конечный тип с помощью неявного преобразования ссылки.

При обновлении Visual Basic до новой версии и запуска приложения Visual Basic 6.0 с вызовом пользовательского события в элементе управления пользователя, может возникнуть исключение, сообщающее, что указанное приведение неверно. Чтобы устранить эту ошибку, найдите следующую строку кода в Form1:

Call UserControl11_MyCustomEvent(UserControl11, New UserControl1.MyCustomEventEventArgs(5))

И замените ее на:

Call UserControl11_MyCustomEvent(UserControl11(0), New UserControl1.MyCustomEventEventArgs(5))

См. также

Задачи

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

Практическое руководство. Преобразование объекта к другому типу в Visual Basic

Практическое руководство. Реализация определенных пользователем преобразований между структурами (руководство по программированию на C#)

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

Преобразование строк в типы данных .NET Framework

Ссылки

InvalidCastException

Другие ресурсы

Visual J#