- •Назначение платформы .Net Framework.
- •Версии платформы .Net
- •Общие концепции синтаксиса языка с#
- •Система типов clr и языка c#. Типы-значения и ссылочные типы
- •Система типов clr и языка c#. Преобразование типов
- •Идентификаторы, ключевые слова и литералы в языке c#
- •Допустимые элементы класса
- •Классы. Модификаторы доступа для элементов и типов
- •Методы. Описание метода. Вызов метода
- •Описание метода
- •Классы. Использование класса
- •Вызов метода
- •12, 13. Интерфейсы в языке c#. Объявление и реализация интерфейсов
- •14. Универсальные шаблоны. Универсальные классы и структуры
- •Универсальные классы и структуры
- •15. Универсальные шаблоны. Ограничения на параметры универсальных типов
- •16. Делегаты в языке с#
- •17. Анонимные методы и лямбда-выражения в языке c#
- •18. Понятие Пространства имен. Применяемые пространства имен в .Net.
- •19. Препроцессорные директивы
- •20. Создание проекта в Visual Studio. Интерфейс среды.
- •21. Настройка внешнего вида и поведения формы. Добавление элементов управления. Категории элементов.
- •22. Создание mdi-приложений. Главное и дочерние окна. Упорядочивание mdi-окон
- •23. Работа с текстовыми файлами. Запись, чтение, открытие, создание.
- •24, 25, 26 Сериализация объектов в .Net.
- •27. Жизненный цикл объектов. Алгоритм «сборки мусора» Жизненный цикл объектов
- •Сборщик мусора
- •28. Жизненный цикл объектов. Финализаторы
- •29. Xml. Правило построения xml-документов Понятие о языке xml
- •Простейший xml-документ
- •30. Создание, сохранение, загрузка xml Создание, сохранение, загрузка xml
- •31. Состав и взаимодействие сборок
- •32 Многопоточное программирование. Класс Thread. Основные свойства класса.
- •33 Многопоточное программирование. Пул потоков
- •34. Синхронизация потоков
- •35, 36, 37. Аспекты безопасности .Net
- •35 Аспекты безопасности .Net. Разрешение на доступ
- •36 Аспекты безопасности .Net. Изолированные хранилища
- •37 Аспекты безопасности .Net. Криптография
- •38. Работа с ключами реестра в .Net.
- •43. Методы доступа к субд.
- •44. Метод доступа ado .Net.
- •45 Работа с элементами управления DataSet.
- •46. Создание базы данных ms sql server.
- •47. Соединение с базой данных. Открытие и закрытие соединения с базой данных.
- •48. Адаптер SqlDataAdapter. Запросы sql.
- •49 Разработка Windows приложений с использованием com объектов
- •50. Работа с com сервером Excel. Запуск и закрытие Excel из приложения на c#. Создание рабочих книг
- •51 Работа с com сервером Excel. Вывод информации в ячейки Excel
- •52 Работа с com сервером Excel. Создание диаграмм
- •53 Работа с com сервером Word. Создание и сохранение документов
- •54 Работа с com сервером Word. Вывод текстовой информации
- •55 Работа с com сервером Word. Работа с таблицами
Допустимые элементы класса
1. Поле. Синтаксис объявления поля класса совпадает с синтаксисом оператора объявления переменной1 (тип поля должен всегда быть указан явно, использование var не допускается). Если для поля не указано начальное значение, то поле принимает значение по умолчанию для соответствующего типа (для числовых типов ‑ 0, для типа bool ‑ false, для ссылочных типов ‑ null). Для полей возможно применение модификатора readonly, который запрещает изменение поля после его начальной установки.
Поля с модификатором readonly похожи на константы, но имеют следующие отличия:
Тип поля может быть любым.
Значение поля может быть установлено при объявлении и в конструкторе класса.
Значение поля вычисляется в момент выполнения, а не компиляции.
2. Константа. Синтаксис объявления константы в классе аналогичен синтаксису, применяемому при объявлении константы в теле метода.
Следующие элементы класса будут подробно рассмотрены в дальнейшем.
3. Метод. Методы описывают функциональность класса.
4. Свойство. Свойства класса призваны предоставить защищенный доступ к полям.
5. Индексатор. Индексатор – это свойство-коллекция, отдельный элемент которого доступен по индексу.
6. Конструктор. Задача конструктора – начальная инициализация объекта или класса.
7. Финализатор. Финализатор автоматически вызывается сборщиком мусора и содержит завершающий код для объекта.
8. Событие. События представляют собой механизм рассылки уведомлений различным объектам.
9. Операция. Язык C# допускает перегрузку некоторых операций для объектов класса.
10. Вложенный пользовательский тип. Описание класса может содержать описание другого пользовательского типа – класса, структуры, перечисления, интерфейса, делегата. Обычно вложенные типы выполняют вспомогательные функции и явно вне основного типа не используются.
Классы. Модификаторы доступа для элементов и типов
Для поддержания принципа инкапсуляции элементы класса могут снабжаться специальными модификаторами доступа:
private. Элемент с данным модификатором доступен только в том типе, в котором определён. Например, поле доступно только в содержащем его классе.
protected. Элемент виден в типе, в котором определен, и в наследниках этого типа (даже если наследники расположены в других сборках). Данный модификатор может применяться только в типах, поддерживающих наследование, то есть в классах.
internal. Элемент доступен без ограничений, но только в той сборке, где описан.
protected internal. Комбинация модификаторов protected и internal. Элемент виден в содержащей его сборке без ограничений, а вне сборки – только в наследниках типа (т.е. protected или internal2).
public. Элемент доступен без ограничений как в той сборке, где описан, так и в других сборка, к которым подключается сборка с элементом.
По умолчанию (без указания) для всех элементов типа применяется модификатор private. Для локальных переменных методов и операторных блоков модификаторы доступа не используются.
При описании самостоятельного класса допустимо указать для него модификаторы public или internal (internal применяется по умолчанию). Если же класс вложен в другой пользовательский тип, то такой класс можно объявить с любым модификатором доступа. Заметим, что у internal-класса public-элементы за пределами сборки не видны.
