Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
955 of 1492 menu
◀ ▶

InvalidCastException

InvalidCastException бросает CLR, когда явное приведение (T) не совместимо с фактическим типом в object. Это не InvalidOperationException и не ошибка состояния. Связанный приём - распаковка значимых типов. Ловят через catch.

Синтаксис

object box = 5; string text = (string)box;

Пример

Давайте приведём int в string и поймаем ошибку:

using System; class Program { static void Main() { try { object box = 5; string text = (string)box; } catch (InvalidCastException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"fail"

Пример

Давайте поймаем исключение отдельным типом в catch:

using System; class Program { static void Main() { try { object box = 5; var unused = (string)box; } catch (InvalidCastException ex) { Console.WriteLine(ex.GetType().Name); } } }

Результат выполнения кода:

"InvalidCastException"

Пример

Давайте убедимся, что успешное приведение не бросает исключение:

using System; class Program { static void Main() { try { object box = "abcde"; string text = (string)box; Console.WriteLine(text); } catch (InvalidCastException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"abcde"

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить