- •Назначение платформы .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. Работа с таблицами
16. Делегаты в языке с#
Делегат - это тип, который представляет собой ссылки на методы с определенным списком параметров и возвращаемым типом. При создании экземпляра делегата этот экземпляр можно связать с любым методом с совместимой сигнатурой и возвращаемым типом. Метод можно вызвать (активировать) с помощью экземпляра делегата.
Делегаты используются для передачи методов в качестве аргументов к другим методам. Обработчики событий — это нe что иное, как методы, вызываемые с помощью делегатов. Вы создаёте свой метод, а класс, такой как элемент управления Windows, может вызывать ваш метод при возникновении определенного события. В следующем примере показано объявление делегата:
Делегату может быть присвоен любой метод, соответствующий типу делегата, из любого доступного класса или структуры. Этот метод должен быть статическим методом или методом экземпляра. Это позволяет программно изменять вызовы метода, а также включать новый код в существующие классы.
Делегаты имеют следующие свойства.
Делегаты похожи на указатели функций в C++, но являются типобезопасными.
Делегаты позволяют производить передачу методов подобно обычным параметрам.
Делегаты можно использовать для определения методов обратного вызова.
Делегаты можно связывать друг с другом; например, при появлении одного события можно вызывать несколько методов.
Точное соответствие методов типу делегата не требуется.
17. Анонимные методы и лямбда-выражения в языке c#
Анонимные методы.
Анонимные методы появились еще в версии C# 2.0. Применяют их и сегодня. Хоть и на смену анонимным методам в версии С# 3.0 пришли лямбда выражения, все же со счетов их списывать не стоит. Само название говорит, что метод анонимный, то есть не имеет названия! Лямбда выражения будет легче понять после рассмотрения анонимных методов. Анонимный метод – один из способов создать безымянный блок, который будет связан с конкретным делегатом.
Лямбда выражения.
Лямбда выражения, это более лучшая замена анонимным методам, которая основываются на новом синтаксисе. Во всех лямбда выражениях должен быть лямбда оператор “=>”. Этот оператор разделяет выражение на две части.
В левой части – параметры (может быть несколько);
В правой части – тело метода;
Есть еще такие понятия, как одиночные и блочные лямбда выражения. Все просто, если у нас после цикла for или оператора if включается одна строчка кода, то незачем включать эту строку в фигурные скобки. Это относится к одиночным лямбда выражениям, но если в выражение несколько строчек, нужно захватить этот блок в фигурные скобки.
Я бы распределил использование лямбда выражения на три этапа:
Определения делегата, совместимого с лямбда-выражением.
Создание экземпляра делегата, которому присваивается лямбда-выражение.
Этот этап, уже само использование выражение, которое происходит при обращение к делегату.
Блочные лямбда-выражения:
Чтоб создать блочное лямбда-выражение, нужно просто его взять в фигурные скобки. Преимущества в использование блочных выражений проявляется в том, что есть возможность управлять такими операторами как if, for и т.д.
