🗊Презентация Интерфейсы (C#, Лекция 8)

Нажмите для полного просмотра!
Интерфейсы (C#, Лекция 8), слайд №1Интерфейсы (C#, Лекция 8), слайд №2Интерфейсы (C#, Лекция 8), слайд №3Интерфейсы (C#, Лекция 8), слайд №4Интерфейсы (C#, Лекция 8), слайд №5Интерфейсы (C#, Лекция 8), слайд №6Интерфейсы (C#, Лекция 8), слайд №7Интерфейсы (C#, Лекция 8), слайд №8Интерфейсы (C#, Лекция 8), слайд №9Интерфейсы (C#, Лекция 8), слайд №10Интерфейсы (C#, Лекция 8), слайд №11Интерфейсы (C#, Лекция 8), слайд №12Интерфейсы (C#, Лекция 8), слайд №13Интерфейсы (C#, Лекция 8), слайд №14Интерфейсы (C#, Лекция 8), слайд №15Интерфейсы (C#, Лекция 8), слайд №16Интерфейсы (C#, Лекция 8), слайд №17Интерфейсы (C#, Лекция 8), слайд №18Интерфейсы (C#, Лекция 8), слайд №19Интерфейсы (C#, Лекция 8), слайд №20Интерфейсы (C#, Лекция 8), слайд №21Интерфейсы (C#, Лекция 8), слайд №22Интерфейсы (C#, Лекция 8), слайд №23Интерфейсы (C#, Лекция 8), слайд №24Интерфейсы (C#, Лекция 8), слайд №25Интерфейсы (C#, Лекция 8), слайд №26Интерфейсы (C#, Лекция 8), слайд №27Интерфейсы (C#, Лекция 8), слайд №28Интерфейсы (C#, Лекция 8), слайд №29Интерфейсы (C#, Лекция 8), слайд №30Интерфейсы (C#, Лекция 8), слайд №31Интерфейсы (C#, Лекция 8), слайд №32Интерфейсы (C#, Лекция 8), слайд №33Интерфейсы (C#, Лекция 8), слайд №34Интерфейсы (C#, Лекция 8), слайд №35Интерфейсы (C#, Лекция 8), слайд №36

Содержание

Вы можете ознакомиться и скачать презентацию на тему Интерфейсы (C#, Лекция 8). Доклад-сообщение содержит 36 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Лекция 8
Описание слайда:
Лекция 8

Слайд 2





Интерфейсы
ICloneable
IComparable и IComparer
IEnumerator и IEnumirable
IDisposible
Описание слайда:
Интерфейсы ICloneable IComparable и IComparer IEnumerator и IEnumirable IDisposible

Слайд 3





ICloneable
Поддерживает копирование, который создает новый экземпляр класса с тем же значением, что существующий экземпляр.
Перегружаемый метод: Clone();
Описание слайда:
ICloneable Поддерживает копирование, который создает новый экземпляр класса с тем же значением, что существующий экземпляр. Перегружаемый метод: Clone();

Слайд 4





Зачем он нужен?
Пример:
Описание слайда:
Зачем он нужен? Пример:

Слайд 5





Зачем он нужен?
В данном случае объекты cl1 и cl2 будут указывать на один и тот же объект в памяти, поэтому изменения свойств в переменной cl2 затронут также и переменную cl1.
Чтобы переменная cl2 указывала на новый объект, но со значениями из cl1, его необходимо клонировать.
Описание слайда:
Зачем он нужен? В данном случае объекты cl1 и cl2 будут указывать на один и тот же объект в памяти, поэтому изменения свойств в переменной cl2 затронут также и переменную cl1. Чтобы переменная cl2 указывала на новый объект, но со значениями из cl1, его необходимо клонировать.

Слайд 6





Реализация
Описание слайда:
Реализация

Слайд 7





Можно проще
Для сокращения кода копирования мы можем использовать специальный метод MemberwiseClone(), который возвращает копию объекта
Описание слайда:
Можно проще Для сокращения кода копирования мы можем использовать специальный метод MemberwiseClone(), который возвращает копию объекта

Слайд 8





Недостаток
Этот метод реализует поверхностное (неглубокое) копирование. 
Если в классе есть поля-объекты от других классов, то в объекте-клоне создастся не новый объект, а копируется ссылка от текущего
Описание слайда:
Недостаток Этот метод реализует поверхностное (неглубокое) копирование. Если в классе есть поля-объекты от других классов, то в объекте-клоне создастся не новый объект, а копируется ссылка от текущего

Слайд 9





Добавим класс
Описание слайда:
Добавим класс

Слайд 10





Что получаем
Описание слайда:
Что получаем

Слайд 11





Глубокое копирование
Описание слайда:
Глубокое копирование

Слайд 12





IComparable
Описание слайда:
IComparable

Слайд 13





IComparable
Однако метод Sort по умолчанию работает только для наборов примитивных типов, как int или string. Для сортировки наборов сложных объектов применяется интерфейс IComparable.
int CompareTo(object o);
Описание слайда:
IComparable Однако метод Sort по умолчанию работает только для наборов примитивных типов, как int или string. Для сортировки наборов сложных объектов применяется интерфейс IComparable. int CompareTo(object o);

Слайд 14





Возвращаемое значение
Меньше нуля. Значит, текущий объект должен находиться перед объектом, который передается в качестве параметра
Равен нулю. Значит, оба объекта равны
Больше нуля. Значит, текущий объект должен находиться после объекта, передаваемого в качестве параметра
Описание слайда:
Возвращаемое значение Меньше нуля. Значит, текущий объект должен находиться перед объектом, который передается в качестве параметра Равен нулю. Значит, оба объекта равны Больше нуля. Значит, текущий объект должен находиться после объекта, передаваемого в качестве параметра

Слайд 15





Реализация
Описание слайда:
Реализация

Слайд 16





Еще вариант
Описание слайда:
Еще вариант

Слайд 17





IComparer
Кроме интерфейса IComparable имеется интерфейс IComparer
int Compare(object o1, object o2);
Метод Compare предназначен для сравнения двух объектов o1 и o2. Он также возвращает три значения, в зависимости от результата сравнения:
Описание слайда:
IComparer Кроме интерфейса IComparable имеется интерфейс IComparer int Compare(object o1, object o2); Метод Compare предназначен для сравнения двух объектов o1 и o2. Он также возвращает три значения, в зависимости от результата сравнения:

Слайд 18





IComparer
если первый объект больше второго, то возвращается число больше 0, 
если меньше - то число меньше нуля; 
если оба объекта равны, возвращается ноль.
Описание слайда:
IComparer если первый объект больше второго, то возвращается число больше 0, если меньше - то число меньше нуля; если оба объекта равны, возвращается ноль.

Слайд 19





Реализация
Описание слайда:
Реализация

Слайд 20





IEnumerable
Интерфейс IEnumerable имеет метод, возвращающий ссылку на другой интерфейс - перечислитель:
public interface IEnumerable
{
    IEnumerator GetEnumerator();
}
Описание слайда:
IEnumerable Интерфейс IEnumerable имеет метод, возвращающий ссылку на другой интерфейс - перечислитель: public interface IEnumerable {     IEnumerator GetEnumerator(); }

Слайд 21





IEnumerator
Интерфейс IEnumerator определяет функционал для перебора внутренних объектов в контейнере.
Описание слайда:
IEnumerator Интерфейс IEnumerator определяет функционал для перебора внутренних объектов в контейнере.

Слайд 22





IEnumerator
public interface IEnumerator
{
    bool MoveNext(); // перемещение на одну позицию вперед в контейнере элементов
    object Current {get;}  // текущий элемент в контейнере
    void Reset(); // перемещение в начало контейнера
}
Описание слайда:
IEnumerator public interface IEnumerator {     bool MoveNext(); // перемещение на одну позицию вперед в контейнере элементов     object Current {get;}  // текущий элемент в контейнере     void Reset(); // перемещение в начало контейнера }

Слайд 23





Реализация
Описание слайда:
Реализация

Слайд 24





Реализация
Описание слайда:
Реализация

Слайд 25





Применение
Описание слайда:
Применение

Слайд 26





IDispolable
Предоставляет механизм для освобождения управляемых и неуправляемых ресурсов.
void Dispose()
Описание слайда:
IDispolable Предоставляет механизм для освобождения управляемых и неуправляемых ресурсов. void Dispose()

Слайд 27





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

Слайд 28





Ресурсы
Первый подход заключается в переопределении метода System.Object.Finalize() и позволяет гарантировать то, что объект будет очищать себя сам во время процесса сборки мусора (когда бы тот не запускался) без вмешательства со стороны пользователя.
Описание слайда:
Ресурсы Первый подход заключается в переопределении метода System.Object.Finalize() и позволяет гарантировать то, что объект будет очищать себя сам во время процесса сборки мусора (когда бы тот не запускался) без вмешательства со стороны пользователя.

Слайд 29





Ресурсы
торой подход предусматривает реализацию интерфейса IDisposable и позволяет обеспечить пользователя объекта возможностью очищать объект сразу же по окончании работы с ним. 
Однако если пользователь забудет вызвать метод Dispose(), неуправляемые ресурсы могут оставаться в памяти на неопределенный срок.
Описание слайда:
Ресурсы торой подход предусматривает реализацию интерфейса IDisposable и позволяет обеспечить пользователя объекта возможностью очищать объект сразу же по окончании работы с ним. Однако если пользователь забудет вызвать метод Dispose(), неуправляемые ресурсы могут оставаться в памяти на неопределенный срок.

Слайд 30





Ресурсы
Если пользователь объекта не забыл вызвать метод Dispose(), можно проинформировать сборщик мусора о пропуске финализации, вызвав метод GC.SuppressFinalize(). 
Если же пользователь забыл вызвать этот метод, объект рано или поздно будет подвергнут финализации и получит возможность освободить внутренние ресурсы.
Описание слайда:
Ресурсы Если пользователь объекта не забыл вызвать метод Dispose(), можно проинформировать сборщик мусора о пропуске финализации, вызвав метод GC.SuppressFinalize(). Если же пользователь забыл вызвать этот метод, объект рано или поздно будет подвергнут финализации и получит возможность освободить внутренние ресурсы.

Слайд 31





Виды ресурсов
Неуправляемые ресурсы - это разнообразные файловые хэндлы, оконные, всякие объекты синхронизации, соединения с базой данных
Управляемые ресурсы - всё, что создаётся средствами .net, и все объекты
Описание слайда:
Виды ресурсов Неуправляемые ресурсы - это разнообразные файловые хэндлы, оконные, всякие объекты синхронизации, соединения с базой данных Управляемые ресурсы - всё, что создаётся средствами .net, и все объекты

Слайд 32





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

Слайд 33





IDispolable
Использование метода Dispose, позволяет явно освобождать неуправляемые ресурсы вместе со сборщиком мусора. Пользователь объекта может вызвать этот метод, когда объект больше не нужен.
Описание слайда:
IDispolable Использование метода Dispose, позволяет явно освобождать неуправляемые ресурсы вместе со сборщиком мусора. Пользователь объекта может вызвать этот метод, когда объект больше не нужен.

Слайд 34





IDispolable
Описание слайда:
IDispolable

Слайд 35





IDispolable
Если есть подключение к файлу или к БД, которое «живет» на всем протяжении работы объекта класса, то в Displose в секторе удаления управляемой памяти нужно вызывать методы Dispose этих классов.
Описание слайда:
IDispolable Если есть подключение к файлу или к БД, которое «живет» на всем протяжении работы объекта класса, то в Displose в секторе удаления управляемой памяти нужно вызывать методы Dispose этих классов.

Слайд 36





Использование
Есть 2 варианта как правильно реализовывать отчистку
Либо через using
Либо напрямую вызывать Dispose()
Описание слайда:
Использование Есть 2 варианта как правильно реализовывать отчистку Либо через using Либо напрямую вызывать Dispose()



Похожие презентации
Mypresentation.ru
Загрузить презентацию