- •1.Технология .Net Framework
- •6. В чем отличие платформы . Net от стандартного подхода к разработке программ.
- •7. Алфавит и лексемы языка программирования с#.
- •8. Типы данных в .Net Framework.
- •9. Переменные типа ссылки. Пример использования.
- •10. Инициализация переменных, констант. Специальные символы при инициализации строк.
- •11. Область видимости переменных.
- •12. Именование переменных.
- •14. Явное и неявное преобразование типов данных.
- •15. Ввод с клавиатуры. Преобразование строк в числа.
- •16. Перечислимые типы.
- •17. Структуры.
- •18.Структура if.
- •19. Структура switch.
- •20. Цикл while.
- •21. Оператор do.
- •22. Оператор for.
- •23. Оператор foreach.
- •24.Оператор goto.
- •25. Операторы break и continue.
- •26. Понятие исключения.
- •27. Перехват исключений.
- •28. Бросание исключений.
- •29. Определение массива. Объявление, инициализация.
- •30. Доступ к элементам массива.
- •31.Основные свойства и методы массивов.
- •32.Коллекции. Их виды.
- •33. Методы в с#
- •34. Вызов метода
- •35. Возврат из метода. Возврат значений из метода.
- •36. Параметры методов. Передача параметров по значению. Передача параметров по ссылке.
- •37. Понятие ооп. Классы и объекты
- •38. Основные три принципа ооп.
- •39. Понятие конструктора. Параметры конструктора
- •40. Понятие деструктора.
- •41. Управление памятью. Алгоритм работы Garbage Collector.
- •42 Управление доступом к элементам сущности.
- •43 Интерфейсы. Правила использования интерфейсов.
- •44 Абстрактные классы
- •45. Класс Random. Основные методы класса System.Random.
- •46 Математические функции – класс Math. Основные методы класса System.Math.
- •47 Пространства имен. Использование пространства имен.
- •48 Операции над строками. Основные элементы класса System.String.
- •49 Работа с символами в с#. Основные методы класса System.Char.
- •50. Классы .Net для работы с файлами. Основные классы пространства имен System.Io.
- •51. Структыры
- •52. Перечисления
- •53. Основные понятия ооп.
- •54. Конструкторы. Параметр this. Ключевое слово this.
- •55. Интерфейсы. Правила использования.
- •56. Семейства и индексаторы. Интерфейсы для работы с семействами.
- •57.Делегаты. Операции с делегатами. Использование делегатов.
- •58. Сборки и библиотеки. Атрибуты, директивы сборки.
53. Основные понятия ооп.
ООП — это целый набор концепций и идей, позволяющих осмыслить задачу, стоящую при разработке компьютерной программы, а затем найти путь к ее решению более понятным, а значит, и более эффективным способом.
Достоинства ООП:
1,использование при программировании понятий, близких к предметной области;
2,возможность успешно управлять большими объемами исходного кода благодаря инкапсуляции, то есть скрытию деталей реализации объектов и упрощению структуры программы;
3,возможность многократного использования кода за счет наследования;
4,сравнительно простая возможность модификации программ;
5,возможность создания и использования библиотек объектов.
язык может называться объектно-ориентированным, если в нем реализованы три концепции:
инкапсуляция, наследование и полиморфизм.
Инкапсуляция- это возможность скрыть внутреннее устройство объекта от его пользователей, предоставив через интерфейс доступ только к тем членам объекта, с которыми клиенту разрешается работать напрямую.
Наследованием называют возможность при описании класса указывать на его происхождение от другого класса. Наследование позволяет создать новый класс, в основу которого положен существующий. В полученный таким образом класс можно внести свои изменения, а затем создать новые объекты данного типа
Полиморфизм - это функциональная возможность, позволяющая старому коду вызвать новый. Это свойство ООП, пожалуй, наиболее ценно, поскольку дает вам возможность расширять и совершенствовать свою систему, не затрагивая существующий код.
54. Конструкторы. Параметр this. Ключевое слово this.
Конструктором называется группировка кода, которой передаётся управление
при создании объекта. Синтаксис объявления конструктора аналогичен обявлению
метода. Те же спецификаторы доступа, имя, список параметров. Особенности
конструктора заключаются в том, что:
конструктор НЕ ИМЕЕТ НИКАКОГО спецификатора возвращаемого даже void,
имя конструктора полностью совпадает с именем класса или структуры,
в классе и в структуре можно объявлять множество вариантов конструкторов.
Они должны отличаться списками параметров. В структуре невозможно объявить
конструктор с пустым списком параметров,
не существует выражения вызова для конструктора, управление в конструктор
передаётся посредством выполнения специальной операции new.
this в контексте конструктора:
Конструктор не вызывается. Передача управления конструктору осуществляется
при выполнении операции new.
this в контексте конструктора обеспечивает в C# передачу управления
от конструктора к конструктору. Таким образом, программист освобождается от
необходимости повторного кодирования алгоритмов инициализации для каждого из
вариантов конструктора.
55. Интерфейсы. Правила использования.
Для реализации интерфейса в классе должны быть предоставлены тела (т.е. конкретные реализации) методов, описанных в этом интерфейсе. Каждому классу предоставляется полная свобода для определения деталей своей собственной реализации интерфейса. Следовательно, один и тот же интерфейс может быть реализован в двух классах по-разному. Тем не менее в каждом из них должен поддерживаться один и тот же набор методов данного интерфейса. А в том коде, где известен такой интерфейс, могут использоваться объекты любого из этих двух классов, поскольку интерфейс для всех этих объектов остается одинаковым. Благодаря поддержке интерфейсов в С# может быть в полной мере реализован главный принцип полиморфизма: один интерфейс — множество методов.
Интерфейсы объявляются с помощью ключевого слова interface. Ниже приведена упрощенная форма объявления интерфейса.
interfaceимя{
возвращаемый_тип имя_метода1 (список_параметров) ;
возвращаемый_тип имя_метода2 (список_параметров) ;
// ...
возвращаемый_тип имя_методаN(список_параметров} ; }
где имя — это конкретное имя интерфейса. В объявлении методов интерфейса используются только их возвращаемый_тип и сигнатура. Они, по существу, являются абстрактными методами. Как пояснялось выше, в интерфейсе не может быть никакой реализации. Поэтому все методы интерфейса должны быть реализованы в каждом классе, включающем в себя этот интерфейс. В самом же интерфейсе методы неявно считаются открытыми, поэтому доступ к ним не нужно указывать явно.
Как только интерфейс будет определен, он может быть реализован в одном или нескольких классах. Для реализации интерфейса достаточно указать его имя после имени класса, аналогично базовому классу. Ниже приведена общая форма реализации интерфейса в классе.
сlаssимя_ класса : имя_интерфейса {
/ / тело класса }
где имя_интерфейса — это конкретное имя реализуемого интерфейса. Если уж интерфейс реализуется в классе, то это должно быть сделано полностью. В частности, реализовать интерфейс выборочно и только по частям нельзя.