Операции создания объектного образа и восстановления из объектного образа

Операции создания объектного образа и восстановления из объектного образа

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

// Создание значения типа short.

short s =25;

Если в приложении потребуется конвертировать этот тип значения в ссылочный тип, вы должны "упаковать" это значение так, как показано ниже.

// "Упаковка" значения в объектную ссылку.

object objShort = s;

Операцию создания объектного образа можно формально определить, как процесс явного преобразования типа, характеризуемого значением, в соответствующий ссылочный тип с помощью сохранения переменной в System.Object. Когда значение преобразуется в объектный тип, среда CLR размещает новый объект в динамической памяти и копирует значение соответствующего типа (в данном случае это значение 25) в созданный экземпляр. Вам возвращается ссылка на новый размещенный в памяти объект. При использований такого подхода у разработчика .NET не возникает необходимости использовать интерфейсные классы, чтобы временно обращаться с данными стека как с объектами, размещенными в динамической памяти.

Обратная операция тоже предусмотрена, и называется она восстановлением из объектного образа (unboxing). Восстановление из объектного образа является процессом обратного преобразования значения, содержащегося в объектной ссылке, в значение соответствующего типа, размещаемое в стеке. Операция восстановления из объектного образа начинается с проверки того, что тип данных, в который выполняется восстановление, эквивалентен типу, который был приведён к объекту. Если это так, то выполняется обратное копирование соответствующего значения в локальную переменную в стеке. Например, следующая операция восстановления из объектного образа будет выполнена успешно, поскольку соответствующий тип objShort действительно имеет тип short (операцию преобразования типов в C# мы рассмотрим подробно в следующей главе, а пока что не слишком беспокойтесь о деталях).

// Обратное преобразование ссылки в соответствующее значение short.

short anotherShort = (short)objShort;

Снова обратим ваше внимание на то, что восстановление следует выполнять в соответствующий тип данных. Так, следующая программная логика восстановления из объектного образа генерирует исключение InvalidCastException (обсуждение вопросов обработки исключений содержится в главе 6).

// Некорректное восстановление из объектного образа.

static void Main(string[] args) {

 …

 try {

  // Тип в "yпаковке" - это HE int, a shоrt!

  int i = (int)objShort;

 }  catch(InvalidCastExceptien e) {

  Console.WriteLine("ОЙ! {0} ", e.ToString());

 }

}

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Запись CD из имеющегося файла-образа

Из книги Запись CD и DVD: профессиональный подход автора Бахур Виктор

Запись CD из имеющегося файла-образа Для записи данных из созданного файла-образа на компакт-диск выполните следующие действия.1. Щелкните мышью на кнопке Запись CD из имеющегося файла-образа или выполните соответствующую команду меню Файл. Откроется окно Копирование из


6.3. Создание образа диска в Nero Express

Из книги Nero 8 автора Кашеваров А

6.3. Создание образа диска в Nero Express Не всегда у пользователя есть возможность сразу выполнить копирование дисков, например, ввиду отсутствия чистых дисков для записи. На помощь может прийти программа Nero 8. В ней есть специальная функция, позволяющая записать на жесткий


6.4. Создание образа диска в Nero Burning ROM

Из книги Pinnacle Studio 11 автора Чиртик Александр Анатольевич

6.4. Создание образа диска в Nero Burning ROM Мы рассмотрели создание образа диска средствами утилиты Nero Express, входящей в новый пакет Nero 8. Выполнить процедуру создания образа диска можно и средствами приложения Nero Burning ROM, имеющего расширенные настройки. Чтобы выбрать и


6.5. Запись образа диска в Nero Express

Из книги Объектно-ориентированный анализ и проектирование с примерами приложений на С++ автора Буч Гради

6.5. Запись образа диска в Nero Express Вы создали и сохранили образ диска, но вся расположенная на нем информация хранится в одном файле, недоступном для просмотра. Чтобы вся сохраненная в образе информация предстала перед вами в своем первоначальном виде и соответствовала


6.6. Запись образа диска в Nero Burning ROM

Из книги Фреймы для представления знаний автора Мински Марвин

6.6. Запись образа диска в Nero Burning ROM Мы рассмотрели запись на диск из файла образа при использовании приложения Nero Express. Теперь рассмотрим алгоритм записи образа на диск посредством приложения Nero Burning ROM, которое предоставляет множество тонких настроек процесса записи.1.


Запись на диск созданного ранее образа

Из книги Руководство по переходу на Ubuntu 10.04 LTS «Lucid Lynx» автора Неворотин Вадим

Запись на диск созданного ранее образа Для создания видеодиска из сохраненного ранее на винчестер образа выполните следующие действия:1. Переключите Studio в режим вывода.2. Переключите окно Просмотр вывода в режим вывода на диск (кнопка ).3. Откройте окно параметров вывода


2.2. Составные части объектного подхода

Из книги Windows Vista. Трюки и эффекты автора Зозуля Юрий

2.2. Составные части объектного подхода Парадигмы программирования Дженкинс и Глазго считают, что "в большинстве своем программисты используют в работе один язык программирования и следуют одному стилю. Они программируют в парадигме, навязанной используемым ими языком.


1.4. Отслеживание образа куба

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

1.4. Отслеживание образа куба «...при обычном способе осмотра любого непрозрачного предмета видимая часть его поверхности обычно занимает все наше внимание, а о противоположной, даже точно такой же его части человек обычно в это время не думает; однако малейшая попытка


2.3 Запись образа диска с Ubuntu

Из книги Восстановление данных на 100% автора Ташков Петр Андреевич

2.3 Запись образа диска с Ubuntu ISO файл — это некоторого рода архив, который содержит все файлы установочного диска. Для того, чтобы получить установочный диск Ubuntu, необходимо записать содержимое ISO на болванку. В принципе, это давно умеют делать все программы записи дисков,


12.3. Восстановление системы с помощью образа диска

Из книги Установка, настройка и восстановление Windows 7 на 100% автора Ватаманюк Александр Иванович

12.3. Восстановление системы с помощью образа диска Образ диска – это файл, содержащий в себе всю все содержимое жесткого диска или некоторых его разделов. С помощью заранее созданного образа диска вы можете вернуть поврежденную систему в рабочее всего состояние за


Пример 13-5. Проверка образа CD

Из книги Linux Mint и его Cinnamon. Очерки применителя автора Федорчук Алексей Викторович

Пример 13-5. Проверка образа CD # С правами root...mkdir /mnt/cdtest # Подготовка точки монтирования.mount -r -t iso9660 -o loop cd-image.iso /mnt/cdtest # Монтирование образа диска.# ключ "-o loop" эквивалентен "losetup /dev/loop0"cd /mnt/cdtest # Теперь проверим образ диска.ls -alR # Вывод списка


Обработка образа диска

Из книги Windows 10. Секреты и устройство автора Алмаметов Владимир

Обработка образа диска Из сохраненного образа данные извлекаются точно так же, как и из образа жесткого диска, – любой из программ, способных работать с файлами образов носителей. Подробно эта процедура была рассмотрена во второй главе книги. Для программ R-Studio или Easy


18.2. Создание образа системы

Из книги автора

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


21.3. Восстановление системы из образа

Из книги автора

21.3. Восстановление системы из образа Если вы все-таки довели операционную систему до такого состояния, когда восстановить ее нормальную работу всеми описанными ранее способами невозможно, не остается ничего другого, как воспользоваться созданным ранее образом системы,


«Потрошение» образа

Из книги автора

«Потрошение» образа А теперь я вернусь назад и расскажу о своём опыте «потрошения» исходного образа Cinnamon-редакции Mint. Не как пример для подражания или, тем более, копирования, но как вариант возможных действий. И себе на память — в качестве шпаргалки, тоже