- •1. Эволюция языков прогр-я.
- •2. Что такое .Net? Обзор технологий программирования под Windows.
- •3. Компоненты платформы .Net. Что такое .Net Framework?
- •4. Модель выполнения приложения в среде .NetFramework. Промежуточныйязык Microsoft (Microsoft Intermediate Language, msil). Сборки
- •5. Обзор встр. Типов данных в с#. Применение встроенной функц-сти типов данных.
- •6. Операции ввода-вывода. Формат вывода. Пространство имён System. Класс Math. Пространство имён System и класс Math
- •7. Арифметические операции. Операции отношений и логические операции. Операторы и выражения в c# .
- •Операторы сравнения в c#. Лог. Операции для условий
- •Операторы
- •8. Одномерные массивы в c#. Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •9. Двумерныемассивы в c#. Виды двумерных массивови способы их определения; способы создания; построчный вывод на экран
- •10. Структуры в c#. Создание структур, доступ к элементам, массивы структур.
- •11.Объект и его свойства. Характеристики ооп.
- •12.Классы в c#. Форма определения класса. Члены класса: методы, поля, свойства и события.
- •13.Конструкторы. Параметризованные конструкторы. Использование оператора new.
- •14. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •15. Деструкторы. Сборка «мусора».
- •16. Определение методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов.
- •17. Модификаторы ref, out, params параметров методов.
- •18. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •19.Область видимости и время существования переменных.
- •20. Преобразование и приведение типов.
- •21. Обработка исключительных ситуаций.
- •22. Перегрузка методов и перегрузка конструкторовкак механизм реализации полиморфизма. Виды конструкторов.
- •23. Понятие стека. Класс «Стек из символов», его основные методы.
- •24. Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
- •25. Свойства как механизм реализации инкапсуляции. Формат записи свойств.
- •26. Индексаторы. Специальные приемы построения типов. Создание одномерных и двумерных индексаторов.
- •27.Наследование. Базовые и производные классы. Доступы к членам базовых классов.
- •28.Конструкторы и наследование (проект «Наследование»).
- •29. Ссылки на базовый класс и объекты производных классов.
- •30. Виртуальные методы и их переопределение.
- •31. Абстрактные классы.
- •32. Понятие интерфейса. Определение интерфейса.
- •33. Способы реализации интерфейса.
- •34.Некоторые станд.Интерфейсы среды .Net Framework.
- •35. Механизмы реализации полиморфизма в c#.
- •36. Понятие обобщенного программирования. Принципы обобщенного программирования (абстрагирование, иерархия, типизация).
- •37. Коллекции и наборы. Обзор коллекций. Интерфейсы коллекций. Классы коллекций общего назначения.
- •38. Классы ArrayList, Queue, Stack. Методы работы с различными структурами данных.
- •39. Динамическая идентификация типов. Проверка типа с помощью ключевого слова is. Использование операторов as, typeof.
- •40. Обобщение. Разработка обобщенных наборов, методов, классов.
- •41. Отражение и атрибуты. Понятие отражения. Класс System.Type. Получение информации о методах и типах. Атрибуты. Основы применения атрибутов.
- •42.Принципы работы Windows-приложений c пользователем.
- •43. Делегаты. Назначение делегатов. Многоадресатная передача.
- •44. События. Объявление и генерация событий. Реализация обработчиков событий.
- •Объявление события:
- •45.Понятие компонента и компонентной модели, компонентно-ориентированного программирования.
- •46.Принципы и технологии внедрения и связывания объектов. Ос Windows позволяет:
12.Классы в c#. Форма определения класса. Члены класса: методы, поля, свойства и события.
Одним из основных понятий является класс. Класс – структура данных, содержащая члены-данные (такие как константы и поля), функциональные члены (методы, свойства, события, индексаторы, операторы, конструкторы и деструкторы) и вложенные типы. Классы поддерживают наследование. Простейшее объявление класса выглядит так:// Класс объявленный как public, доступен отовсюду, включая другие сборки// Можно также написать internal - класс будет доступен только из текущей сборкиpublicclassHelloWorldClass {publicvoidHelloWorld() {Console.WriteLine("Hello, world");}} Члены классов Класс определяется как список своих членов. К членам класса относятся его поля (свойства) и функции (методы). Каждому члену класса можно установить его область доступа (accesscontrollevel). Область доступа члена класса определяет участки кода, из которых к этому члену будет возможно обращаться. Каждый член класса имеет признаки: public, protected, internal, protected internal, or private. internal: доступен только при ассемблировании; internalprotectedдля обеспечения дополнительной гибкости; к члену класса могут иметь доступ либо классы из той же сборки, либо подклассы данного класса. private(закрытый, внутренний член класса доступен только из класса) — обращения к члену допускаются только из кода методов класса, в котором этот член определён. Любые наследники класса уже не смогут получить доступ к этому члену;protected(защищённый, внутренний член иерархии классов, доступен только от полученных классов) — обращения к члену допускаются из кода методов класса, в котором этот член определён, или из любых его классов-наследников; public(открытый член класса, доступен для всего кода) — обращения к члену допускаются из любого кода. Методы.Методы могут объявляться для принятия некоторого числа аргументов. Ключевое слово ref может использоваться для передачи значения по определенной ссылке, которая позволяет возвращать значение. Ключевое слово out также вызывает переход по ссылке без передачи значения.
Виртуальные методы. Прежде, чем метод в базовом классе будет переписан, он должен быть объявлен как virtual. Метод в подклассе, который будет переписан, должен быть объявлен с помощью ключевого слова override. Это предотвратит случайную перезапись метода. Методы представляют собой действия, которые можно произвести в связи с данным классом. Возможныемодификаторы - ужеописанные public, static, protected, abstract иеще virtual, override, new и extern. Методам также можно передавать параметры, которые параметризуют его действия.
Метод ReadLine.Метод ReadLine читает из потока ввода строку текста (она завершается символом перевода строки или возврата каретки).
Методы Write и WriteLine.Метод Write выводит на экран значение переданной ему переменной. Он определен для всех базовых типов и поддерживает форматированные строки. Т.обр, можно либо вызвать Write с указанным значением в качестве параметра, либо передать строку форматирования и список значений.
Метод Main - это точка входа в программу. С него начинается выполнение. Этот метод обязательно должен быть статическим. Далее в нашем примере используется метод WriteLine из класса System.Console. Этот метод отправляет строку на стандартный вывод. Поле класса.Поле класса (переменная-член, datamember, classfield, instancevariable) в объектно-ориентированном программировании — переменная, связанная с классом или объектом. Все данные объекта хранятся в его полях. Доступ к полям осуществляется по их имени. Обычно тип данных каждого поля задаётся в описании класса, членом которого является поле.
Поля структур.Структурные типы, поддерживаемые большинством языков программирования (называемые структурами (structure) в Си, записями (record) в Паскале и т.д.), являются частным случаем классов — а именно, классами из одних только полей. Вся информация, относящаяся к полям классов, в равной степени относится и к структурным типам. Статические поля.Обычно каждому объекту соответствуют собственные значения всех его полей. Также к полям класса относят статические поля (staticdatamembers, staticclassfields, classvariables) — поля, общие для всех объектов класса.Статические поля семантически не отличаются от обычных глобальных переменных, но они доступны только по указанному имени класса, и поэтому, в отличие от глобальных переменных, не загромождают пространство глобальных имён. Битовые поля.Эти поля занимают менее одной единицы памяти (байт, слово); компилятор сам упаковывает несколько битовых полей в одну единицу памяти, позволяя при этом обращаться к битовым болям как к отдельным полям класса. Понятие битовых полей не ограничивается полями классов: по аналогии оно было перенесено и на другие случаи упаковки в одну единицу памяти нескольких значений, например в сетевых протоколах и в форматах файлов. Поля только для чтения (readonly Fields).Поскольку переменные многих типов не могут быть константами, в некоторых ситуациях использовать ключевое слово const невозможно.
В Си Шарп события неотъемлемо связаны с делегатами. Именно на делегатах основана вся модель событий в C#. Чаще всего события (events) используются в windows приложениях в которых допустим кнопка Button реагируя на события, выдают информацию на той же панели где они расположены (например щелчок мышкой). Но события так же можно использовать и в консольных приложениях.
События имеют следующие свойства: 1) Издатель определяет момент вызова события, подписчики определяют предпринятое ответное действие. 2) У события может быть несколько подписчиков. Подписчик может обрабатывать несколько событий от нескольких издателей. 3) События, не имеющие подписчиков, никогда не возникают. 4) Обычно события используются для оповещения о действиях пользователя, таких как нажатия кнопок или выбор меню и их пунктов в графическом пользовательском интерфейсе. 5) Если событие имеет несколько подписчиков, то при его возникновении происходит синхронный вызов обработчиков событий. 6) События можно использовать для синхронизации потоков. 7) В библиотеке классов .NET Framework в основе событий лежит делегат EventHandler и базовый класс EventArgs.