Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 109

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 103 104 105 106 107 108 < 109 > 110 111 112 113 114 115 .. 404 >> Следующая


(“Нет флеша”).
11

Дополнительные сведения о классах

К настоящему моменту мы рассмотрели практически все основные приемы ООП, использующиеся в С#; однако существует несколько более сложных способов, с которыми также ие мешает познакомиться. В этой главе будут обсуждаться следующие темы:

? Семейства — это объекты, в которых могут содержаться массивы

других объектов и которые обладают функциональными возможностями для организации доступа к ним. .

? Перегрузка операторов — процедура конфигурирования классов с тем, чтобы иметь возможность применять такие операторы, как, например, +, для выполнения операций над экземплярами данного класса.

Q Усложненное преобразование — некоторые дополнительные возможности по преобразованию типов в С#.

? Глубокое копирование — это процедура копирования, гарантирующая, что создаваемые объекты ие содержат ссылок на данные, хранящиеся в исходном объекте,

? Исключительные ситуации пользователя — создание программистом собственных исключительных ситуации для того, чтобы передавать коду, перехватившему данную исключительную ситуацию, некоторую дополнительную информацию.

Семейства

В главе 5 вы познакомились с использованием массивов для создания таких типов переменных, в которых содержится несколько объектов нлн значений. У массивов, однако, имеются определенные ограничения. Наиболее существенным из них является то, что после создания массива его размеры должны оставаться неизменными, поэтому дописывать новые элементы в конец уже существующего массива нельзя —требуется создавать новый массив. В результате синтаксис, используемый для работы с массивами, часто оказывается чрезмерно перегруженным. Методы ООП позволяют создавать классы, которые выполняют существенную часть этих манипуляции внутренним образом, упрощая тем самым код, в котором используются списки элементов илн массивы,
228

fjiasa 11

Массивы в C# реализованы как экземпляры класса System.Array н представляют собой просто один из тех типов, которые известны под названием классов семейств. Классы семейств, вообще говоря, используются для работы со списками объектов и по сравнению с обычными массивами обладают некоторыми дополнительными функциональными возможностями. Этн возможности возникают за счет реализации интерфейсов из пространства имен System,collections, что позволяет стандартизировать синтаксис семейств. В пространстве нмен содержатся также и некоторые другие интересные вещн, например, классы, которые реализуют интерфейсы ОТЛИЧНЫМИ ОТ System. Array способами.

Функциональные возможности семейств, в том числе такие основополагающие функции, как доступ к членам семейств с использованием синтаксиса [индекс], реализуются посредством интерфейсов, причем мы не ограничены базовыми классами семейств, таких как System.Array. Напротив, у пользователей имеется возможность создавать свои собственные классы семейств. Такие классы могут в большей степени соответствовать объектам, с которыми их планируется использовать (т. е. тем объектам, нз которых планируется создавать семейство). Одно нз преимуществ такого подхода заключается в том, что, как мы увидим в дальнейшем, создаваемые пользователем классы семейств могут быть строго типизированы. Это означает, что при извлечении элементов нз семейства не требуется приводить их типы к требуемому типу.

В пространстве имен System.Collections существуют интерфейсы, которые обеспечивают выполнение базовых функциональных возможностей семейств:

? I Enumerable позволяет просматривать элементы семейств в цикле.

? icoilection (наследуемый от IEnumerable) позволяет получать общее число элементов в семействе, а также копировать элементы семейства в обычный массив.

? IList (который наследуется от IEnumerable И ICollection) предоставляет список элементов семейства и доступ к этим элементам, а также некоторые другие базовые возможности, имеющие отношение к работе со списками элементов.

? iDictionary (наследуемый от IEnumerable и ICollection) аналогичен интерфейсу IList, но предоставляет список элементов, доступ к которым осуществляется не с помощью индекса, а посредством некоторого ключевого значения.

Класс System.Array наследуется ОТ IList, ICollection И IEnumerable, однако он не поддерживает некоторые наиболее мощные возможности интерфейса nist н представляет список элементов только фиксированной длины.

Использование семейств

Класс System.Collections.ArrayLiat — одни из классов в пространстве имен System.Collections — тоже реализует интерфейсы IEnumerable, ICollection И IList, однако делает ЭТО более изощренным способом, чем класс System.Array. В то время как массивы обладают фиксированным размером (мы не имеем возможности добавлять нлн исключать элементы), этот класс может использоваться для представления списков элементов переменной длниы. Чтобы получить представление о том, какими возможностями обладают такие усложненные семейства, давайте рассмотрим пример, в котором наряду с таким классом будет использоваться и обыкновенный массив.
Предыдущая << 1 .. 103 104 105 106 107 108 < 109 > 110 111 112 113 114 115 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.