Класс программа { статические недействительный Главный ( Строка [] арг) { // 1, преобразование типа. { // неявные преобразования: нет перехода, возвращает в качестве нового объекта Employee, объект является базовым типом Сотрудника Объект O = новый Сотрудник ( ); // преобразование дисплей: необходимость преобразования, как производное от работника объекта Сотрудник Сотрудник = (Сотрудник) о; } // 2, тип ценной бумаги { // так как менеджер является производным от типа сотрудника, нормальная работа менеджер м = новый новый менеджер () ; PromoteEmployee (м); //Поскольку DateTime не является производным от типа работника, исключение во время выполнения выбрасывается // DateTime = newYears новый новый DateTime (2019 ,. 8, 25); // PromoteEmployee (newYears); } // 3, является тип осмотра, определяется типом фазы. Биби ниже / * * это связано в первую очередь проверить , является ли оператор совместим с типом Employee о, о проверить , ссылка на Служащий снова ли * * тип обследования, никогда не сгенерирует исключение, то результат будет возвращать только истинным или ложным * * * * / { Объект O = новый новый объект (); ЕСЛИ ((О IS Объект )) { } ЕСЛИ ((ОIS Сотрудник)) { } } // . 4, как тип преобразования, как определено по типу исполнения могут быть улучшены / * * как тип преобразования, если тип преобразования успешно, то возвращается объект, в противном случае значение, данный режим преобразования никогда не будет выброшен * * * * / { Объект O = новый новый объект (); Сотрудник Е = о А.С. работника; IF (Е =! нуль ) { } } // 5, тип переключателя как, тест. { Object O =новый новый объект (); Сотрудник Е = О КАК Работнике; } // . 6, тип преобразования викторины { // ошибка компиляции, поскольку преобразованный дисплей не обязательно успешен // В = В1 новом новом объекте (); // D = D1 , Объект новый новый (); // ошибка запуска, так как преобразованный дисплей не обязательно успешное в = В1 новый новый в (); D D1 = (D) , В1; // ошибка времени выполнения, поскольку преобразование является обязательно получится Объект O = новый новый объект (); В В2 = (В) О; } Console.ReadKey (); } // должен быть изменен параметром типа объекта типа работника, может быть дано во время компиляции , так что статический недействительный PromoteEmployee ( Объект O) { Сотрудник Е = (Сотрудник) О; } } Класс D: B { } класс B { } общественного класса руководитель: Работник { } общественного класса Сотрудник { }