- •1)Классы: индексаторы, операции классов.
- •Метод Main
- •Операции класса
- •Унарные операции
- •Implicit operator тип ( параметр ) // неявное преобразование
- •Вложенные типы
- •2) Интерфейсы: синтаксис, реализация, операции is и as.
- •Реализация интерфейса
- •Операции is и as
- •Сравнение объектов (интерфейс iComparable)
- •Перебор объектов (интерфейс iEnumerable) и итераторы
- •4) Структуры. Перечисления.
- •Операции с перечислениями
- •5)Делегаты. Передача делегатов в методы.
- •Передача делегатов в методы
- •6)Паттерн «наблюдатель».
- •7) События. Использование стандартных делегатов.
- •8) Общая характеристика многопоточных приложений.
- •9) Класс Thread.
- •Основные элементы
- •Interrupt Метод Прерывает работу текущего потока
- •10) Асинхронные делегаты.
- •11) Общая характеристика процессов ввода-вывода.
- •Основные классы пространства имен System.Ю
- •Выполнять обмен с внешними устройствами можно на уровне:
- •12) Потоки байтов.
- •Элементы класса Stream
- •14) Потоки символов.
- •15) Двоичные потоки.
- •16) Консольный ввод-вывод.
- •17) Работа с каталогами и файлами.
- •Свойства класса FileSystemlnfo
- •18) Сохранение объектов (сериализация)
- •22)Атрибуты.
- •23)Пространства имен.
- •Директивы препроцессора
- •25) Абстрактные структуры данных.
- •Интерфейсы пространства имен System.Collections
- •Коллекции пространства имен System.Collections
- •Основные элементы класса ArrayList
- •Item Свойство Получить или установить значение элемента по заданному индексу
- •27) Классы-прототипы.
- •28) Обобщенные методы. Частичные типы. Обнуляемые типы.
- •29) Основные особенности Windows-приложений.
- •30) Событийно-управляемое программирование.
- •31) Шаблон Windows-приложения.
- •Основные типы Windows.Forms
- •Некоторые основные свойства класса Control
- •33) Класс Form.
- •Некоторые свойства класса Form
- •34) Диалоговые окна.
- •35) Класс Application.
- •Некоторые основные элементы класса Application
- •36) Введение в графику.
- •Основными объектами, которые при этом используются, являются объекты классов:
- •37) Утилитарные типы System.Drawing.
- •Некоторые базовые типы пространства имен System.Drawing
Interrupt Метод Прерывает работу текущего потока
Resume Метод Возобновляет работу после приостановки потока
Start Метод Начинает выполнение потока, определенного делегатом
ThreadStart Suspend Метод Приостанавливает выполнение потока. Если выполнение потока уже приостановлено, то игнорируется
Для того чтобы блок кода мог использоваться в каждый момент только одним потоком, применяется оператор lock. Формат оператора:
lock ( выражение ) блок_операторов
Выражение определяет объект, который требуется заблокировать. Для обычных методов в качестве выражения используется ключевое слово this, для статических — typeof (класс). Блок операторов задает критическую секцию кода, которую требуется заблокировать.
10) Асинхронные делегаты.
Делегат можно вызвать на выполнение либо синхронно, либо асинхронно с помощью методов Beginlnvoke и Endlnvoke. При вызове делегата с помощью метода Beginlnvoke среда выполнения создает для исполнения метода отдельный поток и возвращает управление оператору, следующему за вызовом. При этом в исходном потоке можно продолжать вычисления.
Если при вызове Beginlnvoke был указан метод обратного вызова, этот метод вызывается после завершения потока. Метод обратного вызова также задается с помощью делегата, при этом используется стандартный делегат AsyncCallback. В методе, обратного вызова для получения возвращаемого значения и выходных параметров применяется метод Endlnvoke.
Если метод обратного вызова не был указан в параметрах метода Beginlnvoke, метод EndInvoke можно использовать в потоке, инициировавшем запрос.
11) Общая характеристика процессов ввода-вывода.
Ввод-вывод в С# выполняется с помощью подсистемы ввода-вывода и классов библиотеки .NET. Обмен данными реализуется с помощью потоков. Поток (stream) — это абстрактное понятие, относящееся к любому переносу данных от источника к приемнику. Потоки обеспечивают надежную работу как со стандартными, так и с определенными пользователем типами данных, а также единообразный и понятный синтаксис. Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производится обмен
Обмен с потоком для повышения скорости передачи данных производится, через специальную область оперативной памяти — буфер. Буфер выделяется для каждого открытого файла. При записи в файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока весь буфер не заполнится. После этого или после специальной команды сброса происходит передача данных на внешнее устройство. При чтении из файла данные вначале считываются в буфер, причем не столько, сколько запрашивается, а сколько помещается в буфер.
Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с внешними устройствами.
Для поддержки потоков библиотека .NET содержит иерархию классов. Эти классы определены в пространстве имен System.IO
Основные классы пространства имен System.Ю
BinaryReader, BinaryWriter Чтение и запись значений простых встроенных типов (целочисленных, логических, строковых и т. п.) во внутренней форме представления.
BufferedStream Временное хранение потока байтов (например, для последующего переноса в постоянное хранилище)
Directory , Directorylnfo, File, Filelnfo Работа с каталогами или физическими файлами: создание, удаление, получение свойств. Возможности классов Fillе и Directory реализованы в основном в виде статических методов. Аналогичные классы Directorylnfo и Filelnfo используют обычные методы
FileStream Произвольный (прямой) доступ к файлу, представленному как поток байтов
MemoryStream Произвольный доступ к потоку байтов в оперативной памяти
StreamWriter, StreamReader Чтение из файла и запись в файл текстовой информации
StringWriter, StringReader Работа с текстовой информацией в оперативной памяти
