Слайд 2IComparer
если первый объект больше второго, то возвращается число больше 0,
если меньше
- то число меньше нуля;
если оба объекта равны, возвращается ноль.
Слайд 4IEnumerable
Интерфейс IEnumerable имеет метод, возвращающий ссылку на другой интерфейс - перечислитель:
public interface
IEnumerable
{
IEnumerator GetEnumerator();
}
Слайд 5IEnumerator
Интерфейс IEnumerator определяет функционал для перебора внутренних объектов в контейнере.
Слайд 6IEnumerator
public interface IEnumerator
{
bool MoveNext(); // перемещение на одну позицию вперед в контейнере
элементов
object Current {get;} // текущий элемент в контейнере
void Reset(); // перемещение в начало контейнера
}
Слайд 10IDispolable
Предоставляет механизм для освобождения управляемых и неуправляемых ресурсов.
void Dispose()
Слайд 11Ресурсы
Существуют два различных подхода, которые можно применять для создания класса, способного производить
очистку и освобождать внутренние неуправляемые ресурсы.
Слайд 12Ресурсы
Первый подход заключается в переопределении метода System.Object.Finalize() и позволяет гарантировать то, что
объект будет очищать себя сам во время процесса сборки мусора (когда бы тот не запускался) без вмешательства со стороны пользователя.
Слайд 13Ресурсы
Второй подход предусматривает реализацию интерфейса IDisposable и позволяет обеспечить пользователя объекта возможностью
очищать объект сразу же по окончании работы с ним.
Однако если пользователь забудет вызвать метод Dispose(), неуправляемые ресурсы могут оставаться в памяти на неопределенный срок.
Слайд 14Ресурсы
Если пользователь объекта не забыл вызвать метод Dispose(), можно проинформировать сборщик мусора
о пропуске финализации, вызвав метод GC.SuppressFinalize().
Если же пользователь забыл вызвать этот метод, объект рано или поздно будет подвергнут финализации и получит возможность освободить внутренние ресурсы.
Слайд 15Виды ресурсов
Неуправляемые ресурсы - это разнообразные файловые хэндлы, оконные, всякие объекты синхронизации,
соединения с базой данных
Управляемые ресурсы - всё, что создаётся средствами .net, и все объекты
Слайд 16Сборщик мусора
Сборщик мусора автоматически освобождает память, выделенную для управляемого объекта, если этот
объект больше не используется.
Сборщик мусора не имеет сведений о неуправляемых ресурсов, таких как дескрипторы окон, или открытые файлы и потоки.
Слайд 17IDispolable
Использование метода Dispose, позволяет явно освобождать неуправляемые ресурсы вместе со сборщиком мусора.
Пользователь объекта может вызвать этот метод, когда объект больше не нужен.
Слайд 19IDispolable
Если есть подключение к файлу или к БД, которое «живет» на всем
протяжении работы объекта класса, то в Displose в секторе удаления управляемой памяти нужно вызывать методы Dispose этих классов.