На основе последних версий языка программирования C# и платформы .NET Framework изложены основные концепции и механизмы современного программирования. Методика изложения и тщательно отобранные примеры позволяют освоить не тлько синтаксис и семантику языка С#, но и зучить фундаментальные принципы процедурного, объектного, объектно-ориентированного и обобщенного программирования. Контрольные вопросы позволяют читателю использовать книгу для самообразования. Предлагаемая к публикации рукопись учебника готовится на основе программы учебной дисциплины «Программирование» для направления подготовки бакалавров «Программная инженерия».
Соответствует актуальным требованиям Федерального государственного образовательного стандарта высшего образования.
Книга предназначена для студентов, обучающихся по специальностям, связанным с IT-технологиями, а также для программистов, желающих освоить программирование на C# и перспективные средства платформы .NET Framework.
Author(s): Подбельский В.В.
Series: Высшее образование
Publisher: Юрайт
Year: 2020
Language: Russian
Commentary: Книга в формате PDF взята с просторов интернета и улучшена: уменьшен размер книги за счёт растеризации и бинаризации скурвленных шрифтов; добавлена цветная обложка; уменьшены большие поля страниц книги для удобного просмотра на смартфонах и планшетах; под растрированные страницы добавлен распознанный OCR-текст от FineReader 15. Для удобной навигации по книге: добавлены закладки с точным позиционированием; в Оглавление и в Предметный указатель добавлены гиперссылки (кликабельность) на страницы с точным позиционированием
Pages: 370
City: Москва
Оглавление ...4
Предисловие ...8
ГЛАВА 1. ОБЪЕКТНАЯ ОРИЕНТАЦИЯ ЯЗЫКА C\# ...13
1.1. Типы, классы, объекты ...13
1.2. Программа на С\# ...15
1.3. Пространство имен ...18
1.4. Создание консольного приложения ...20
Контрольные вопросы и задания ...23
ГЛАВА 2. ТИПЫ В ЯЗЫКЕ C\# ...25
2.1. Типы ссылок и типы значений ...25
2.2. Классификация типов C\# ...27
2.3. Простые (базовые) типы. Константы-литералы ...28
2.4. Объявления переменных и констант базовых типов ...31
Контрольные вопросы и задания ...34
ГЛАВА 3. ОПЕРАЦИИ И ЦЕЛОЧИСЛЕННЫЕ ВЫРАЖЕНИЯ ...35
3.1. Операции языка C\# ...35
3.2. Операции присваивания и оператор присваивания ...38
3.3. Операции инкремента (++) и декремента (--) ...39
3.4. Выражения с арифметическими операциями ...40
3.5. Поразрядные (побитовые) операции ...41
3.6. Переполнения при операциях с целыми ...44
Контрольные вопросы и задания ...48
ГЛАВА 4. ВЫРАЖЕНИЯ С ОПЕРАНДАМИ БАЗОВЫХ ТИПОВ ...49
4.1. Автоматическое и явное приведение арифметических типов ...49
4.2. Особые ситуации в арифметических выражениях ...51
4.3. Логический тип и логические выражения ...53
4.4. Выражения с символьными операндами ...56
4.5. Тернарная (условная) операция ...58
Контрольные вопросы и задания ...60
ГЛАВА 5. ТИПЫ C\# И ТИПЫ ПЛАТФОРМЫ .NET FRAMEWORK ...61
5.1. Платформа .NET Framework и спецификация CTS ...61
5.2. Простые (базовые) типы C\# как типы CTS ...63
5.3. Специфические методы и поля простых типов ...66
Контрольные вопросы и задания ...71
ГЛАВА 6. ОПЕРАТОРЫ ...72
6.1. Общие сведения об операторах ...72
6.2. Метки и оператор безусловного перехода ...73
6.3. Условный оператор ...74
6.4. Операторы цикла ...75
6.5. Операторы передачи управления ...81
6.6. Переключатель ...84
Контрольные вопросы и задания ...89
ГЛАВА 7. МАССИВЫ C\# ...91
7.1. Одномерные массивы ...91
7.2. Массивы как наследники класса Array ...97
7.3. Виды массивов и массивы многомерные ...102
7.4. Массивы массивов и «непрямоугольные» массивы ...105
7.5. Массивы массивов и поверхностное копирование ...108
Контрольные вопросы и задания ...111
ГЛАВА 8. СТРОКИ — ОБЪЕКТЫ КЛАССА STRING ...113
8.1. Строковые литералы ...113
8.2. Строковые объекты и ссылки типа string ...114
8.3. Операции над строками ...115
8.4. Некоторые методы и свойства класса string ...118
8.5. Форматирование ...120
8.6. Форматирование в ToString() и интерполяция строк ...123
8.7. Применение строк в переключателях ...125
8.8. Массивы строк ...125
8.9. Сравнение строк ...127
8.10. Преобразования с участием строкового типа ...129
8.11. Аргументы метода Main() ...131
8.12. Неизменяемость объектов класса string ...133
Контрольные вопросы и задания ...134
ГЛАВА 9. МЕТОДЫ C\# ...136
9.1. Методы-процедуры и методы-функции ...136
9.2. Методы локальные и сжатые до выражений ...140
9.3. Соотношение параметров и аргументов ...142
9.4. Параметры с типами ссылок ...149
9.5. Методы с переменным числом аргументов ...153
9.6. Перегрузка методов ...156
9.7. Рекурсивные методы ...157
9.8. Применение метода Array.Sort() ...161
9.9. Кортежи и ссылки в методах ...163
Контрольные вопросы и задания ...167
ГЛАВА 10. КЛАСС КАК СОВОКУПНОСТЬ СТАТИЧЕСКИХ ЧЛЕНОВ ...169
10.1. Статические члены класса ...169
10.2. Поля классов (статические поля) ...171
10.3. Статические константы ...174
10.4. Статические методы ...176
10.5. Статический конструктор и статический класс ...178
Контрольные вопросы и задания ...181
ГЛАВА 11. КЛАССЫ КАК ТИПЫ ...183
11.1. Объявление класса ...183
11.2. Поля объектов ...184
11.3. Объявления методов объектов ...187
11.4. Пример класса и его объектов ...189
11.5. Ссылка this ...192
11.6. Конструкторы объектов класса ...196
11.7. Деструкторы и инициализаторы объектов ...202
Контрольные вопросы и задания ...205
ГЛАВА 12. СРЕДСТВА ВЗАИМОДЕЙСТВИЯ С ОБЪЕКТАМИ ...206
12.1. Принцип инкапсуляции и свойства классов ...206
12.2. Автореализуемые свойства и свойства, сжатые до выражений ...212
12.3. Индексаторы ...215
12.4. Расширяющие методы и деконструкторы ...220
Контрольные вопросы и задания ...226
ГЛАВА 13. ВКЛЮЧЕНИЕ, ВЛОЖЕНИЕ И НАСЛЕДОВАНИЕ КЛАССОВ ...227
13.1. Включение объектов классов ...227
13.2. Вложение классов ...231
13.3. Наследование классов ...233
13.4. Доступность членов класса при наследовании ...236
13.5. Методы при наследовании ...240
13.6. Абстрактные методы и абстрактные классы ...246
13.7. Опечатанные классы и члены классов ...248
13.8. Применение абстрактных классов ...248
Контрольные вопросы и задания ...250
ГЛАВА 14. ИНТЕРФЕЙСЫ ...252
14.1. Два вида наследования в ООП ...252
14.2. Объявления интерфейсов ...253
14.3. Реализация интерфейсов ...255
14.4. Интерфейс как тип ...260
14.5. Интерфейсы и наследование ...265
Контрольные вопросы и задания ...271
ГЛАВА 15. ПЕРЕЧИСЛЕНИЯ И СТРУКТУРЫ ...272
15.1. Перечисления ...272
15.2. Базовый класс перечислений ...277
15.3. Структуры ...280
15.4. Упаковка и распаковка ...285
15.5. Реализация структурами интерфейсов ...289
Контрольные вопросы и задания ...293
ГЛАВА 16. ИСКЛЮЧЕНИЯ ...295
16.1. О механизме исключений ...295
16.2. Системные исключения и их обработка ...297
16.3. Свойства исключений ...300
16.4. Исключения в арифметических выражениях ...302
16.5. Генерация исключений ...304
16.6. Пользовательские классы исключений ...308
Контрольные вопросы и задания ...309
ГЛАВА 17. ДЕЛЕГАТЫ И СОБЫТИЯ ...311
17.1. Синтаксис делегатов ...311
17.2. Массивы делегатов ...315
173. Многоадресные экземпляры делегатов ...317
17.4. Делегаты и обратные вызовы ...319
17.5. Анонимные методы и лямбда-выражения ...322
17.6. События ...330
Контрольные вопросы и задания ...337
ГЛАВА 18. ОБОБЩЕНИЯ ...338
18.1. Обобщения как средство абстракции ...338
18.2. Декларации обобщенных классов ...340
18.3. Ограничения типизирующих параметров ...342
18.4. Обобщенные структуры ...347
18.5. Обобщенные интерфейсы ...350
18.6. Обобщенные методы ...352
18.7. Обобщенные делегаты ...355
Контрольные вопросы и задания ...359
Предметный указатель ...360
Литература и электронные ресурсы ...367
Новинки издательства «Юрайт» по дисциплине «Программирование» и смежным дисциплинам ...369