Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_oop_sdelan.docx
Скачиваний:
4
Добавлен:
16.04.2019
Размер:
929.66 Кб
Скачать

31.Интерфейс.

Интерфейсы позволяют определять характеристики или возможности действий и применять их к классам независимо от иерархии последних.Допустим, у вас есть дистрибьюторское приложение, сущности которого можно упорядочить. Среди них могут быть классы Customer, Supplierи Invoice. Некоторые другие, скажем, MaintenanceViewили Document, упорядочивать не надо. Как упорядочить только выбранные вами классы? Очевидный способ — создать базовый класс с именем типа Serializable. Но у этого подхода есть крупный минус. Одна ветвь наследования здесь не подходит, так как нам не требуется наследование всех особенностей поведения. С# не поддерживает множественное наследование, так что невозможно произвести данный класс от нескольких классов. А вот интерфейсы позволяют определять набор семантически связанных методов и свойств, способные реализовать избранные классы независимо от их иерархии.Концептуально интерфейсы представляют собой связки между двумя в корне отличными частями кода. Иначе говоря, при наличии интерфейса и класса, определенного как реализующий данный интерфейс, клиентам класса дается гарантия, что у класса реализованы все методы, определенные в интерфейсе. Скоро вы это поймете на примерах.

32. Стандартные интерфейсы .Net.

Интерфейс IComparable определен в пространстве имен System. Он содержит всего один метод CompareTo, возвращающий результат сравнения двух объектов — текущего и переданного ему в качестве параметра:

interfaceIComparable

{

    intCompareTo( object obj )

}

Интерфейс IComparer определен в пространстве имен System.Collections. Он содержит один метод CompareTo, возвращающий результат сравнения двух объектов, переданных ему в качестве параметров. interfaceIComparer

{

    int Compare ( object ob1, object ob2 )

}

Объект, имеющий собственные алгоритмы клонирования, должен объявляться как наследник интерфейса ICloneable и переопределять его единственный метод Clone.

Оператор foreach является удобным средством перебора элементов объекта. Массивы и все стандартные коллекции библиотеки .NET позволяют выполнять такой перебор благодаря тому, что в них реализованы интерфейсы IEnumerable и IEnumerator. Для применения оператора foreach к пользовательскому типу данных требуется реализовать в нем эти интерфейсы.

Интерфейс IEnumerable (перечислимый) определяет всего один метод —GetEnumerator, возвращающий объект типа IEnumerator (перечислитель), который можно использовать для просмотра элементов объекта.

Интерфейс IEnumerator задает три элемента:

свойство Current, возвращающее текущий элемент объекта;

метод MoveNext, продвигающий перечислитель на следующий элемент объекта;

метод Reset, устанавливающий перечислитель в начало просмотра.

33. Пространство имен.System.Collections

Пространство имен — это просто способ организации типов (классов, перечислений, интерфейсов, делегатов и структур) в единую группу. System. Collections - Для работы с контейнерными объектами, такими как ArrayList, Queue, SortedUst.

Класс ArrayList

Основным недостатком обычных массивов является то, что объем памяти, обходимый для хранения их элементов, должен быть выделен до начала работы с массивом. Класс ArrayList позволяет программисту не заботиться о выделении памяти и хранить в одном и том же массиве элементы различных типов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]