Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Распаковка-преобразование




Распаковка является явным преобразованием из типа object в тип значения или из типа интерфейса в тип значения, его реализующее. Операция распаковки состоит из следующих действий.

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

2. Копирование значения из экземпляра в переменную типа-значения.

В следующих операторах показаны операции по упаковке и распаковке.

int i = 123; // a value type

object o = i; // boxing

int j = (int)o; // unboxing

На следующем рисунке представлен результат выполнения предыдущих операторов.

Распаковка-преобразование:

Для успешной распаковки типов значений во время выполнения необходимо, чтобы экземпляр, который распаковывается, был ссылкой на объект, предварительно созданный с помощью упаковки экземпляра этого типа значения. Попытка распаковать null или ссылку в несовместимый тип значения вызовет InvalidCastException.


Вопрос № 8

Ссылочные типы данных. Объектная модель в среде .NET и языке C#.

Переменные ссылочных типов, называемые объектами, сохраняют ссылки на фактические данные.

Ключевые слова для объявления ссылочных типов:

1. Class

2. Interface

3. Delegate

4. Object

5. string

 

Class

Классы объявляются с помощью ключевого слова class.

В отличие от C++, в C# допускается только одиночное наследование. Другими словами, класс может наследовать реализацию только от одного базового класса. Однако класс может реализовать несколько интерфейсов. В приведенной ниже таблице приведены примеры наследования класса и реализации интерфейса.

Наследование Пример
Отсутствует class ClassA { }
Одиночный class DerivedClass: BaseClass { }
Отсутствует, реализует два интерфейса class ImplClass: IFace1, IFace2 { }
Одиночное, реализует один интерфейс class ImplDerivedClass: BaseClass, IFace1 { }

 

Во вложенных классах разрешены только следующие уровни доступа: protected и private.

Можно объявить универсальные классы, имеющие параметры типа.

Класс может содержать объявления следующих членов.

Конструкторы

Деструкторы

Константы

Поля

Методы

Свойства

Индексаторы

Операторы

События

Делегаты

Классы

Интерфейсы

Структуры

Типы, объявленные в классе без модификатора доступа, по умолчанию являются private.

 


Поделиться:

Дата добавления: 2015-04-21; просмотров: 56; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты