- •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 позволяет:
18. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
Методы можно объявлять как статические с использованием ключевого слова static. Это нужно, когда требуется определить член класса, который будет использоваться независимо от объекта этого класса. Обычно к члену класса доступ предоставляется через объект этого класса. Однако можно создать член, который заведомо разрешено использовать сам по себе, т.е. без ссылки на конкретный экземпляр. С использованием ключевого слова static можно объявлять как методы, так и переменные (поля). Пример static- члена – это метод Main ( ), который должен быть вызван операционной системой в начале работы программы (без создания экземпляра). При использовании static – члена вне класса нужно указать Имя_класса.имя_ static- члена. Объект при этом не нужно создавать. В отличие от обычных данных статические данные совместно используются всеми объектами того класса, в котором они были определены. Вместо локальных копий переменной в каждом из объектов существует единственная копия статической переменной, которой пользуются все объекты. Инициализация static- переменной происходит при загрузке класса. Если инициализатор явно не указан, static- переменная, предназначенная для хранения числовых значений; объектные ссылки – null- значениями, а переменные типа bool- значениями false. Таким образом, static- переменная всегда имеет значение. Переменные, объявленные как static- члены, являются по сути глобальными переменными. Различие между static и обычным методом состоит в том, что static – метод можно вызвать посредством имени класса, без необходимости создания объекта этого класса. Так вызывается метод Sqrt класса Math. Это- статический метод. В C# доступ к статическим членам класса посредством экземпляров класса не поддерживается. Ограничения на static-методы. На static-методы накладывается ряд ограничений: 1.static-метод не имеет ссылки this. 2.static-метод может напрямую вызывать только другие static-методы: он не может вызывать метод экземпляра своего класса. Дело в том, что методы экземпляров работают с конкретными экземплярами класса, чего не скажешь о static-методах. 3.static-метод имеет прямой доступ только к static-данным. Он не может напрямую использовать переменные экземпляров, так же как не работает с экземплярами класса. Примечание:static-метод может вызывать методы экземпляров и получать доступ к переменным экземпляров своего класса через объект класса (т.е в Main() ) или внутри метода, у которого параметр-объект этого же класса. Поскольку static-поля не зависят от конкретного объекта, они используются при обработке информации, применяемой ко всему классу. Статические члены класса (особенно статические конструкторы) применяют при создании атрибутов. Атрибуты используются для описания создаваемых типов ( например классов). Т.е атрибуты предоставляют описательную информацию, которая может быть присоединена к различным элементам программного кода ( к классам, методам и т.д.). Эту информацию можно получить на этапе выполнения программы.
19.Область видимости и время существования переменных.
В C# разрешается объявлять переменные внутри фигурных скобок. Любой блок определяет область объявления, или область видимостиобъектов. Обл. видимости также определяет и время существования этих объектов. Важными является области видимости, которые определены классом и методом. Область видимости, определяемая методом, начинается с {. При объявлении переменной внутри области видимости мы защищаем ее от неправомочного доступа. Эти правила области видимости обеспечивают основу для инкапсуляции. Области видимости могут быть вложенными. Переменные создаются после входа в обл. видимости, а разрушаются при выходе из нее. Это значит, что переменная не будет хранить значение за пределами обл. видимости. - время существования переменной ограничивается ее областью видимости; - ни одна переем., объявленная во внутренней области видимости, не может иметь имя, совпадение с именем переменной, объявленной во внешней области видимости.