Библия C#
Год издания: 2022
Автор: Фленов М.Е.
Издательство: БХВ-Петербург
ISBN: 978-5-9775-6827-2
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Количество страниц: 463
Описание: Книга посвящена программированию на языке C# для платформы Microsoft .NET, начиная с основ языка и разработки программ для работы в режиме командной строки и заканчивая созданием современных веб-приложений. Материал сопровождается большим количеством практических примеров. Подробно описывается логика выполнения каждого участка программы. Уделено внимание вопросам повторного использования кода. В пятом издании примеры переписаны с учетом современной платформы .NET 5, а вместо прикладных приложений упор делается на веб-приложения. На сайте издательства находятся коды программ, дополнительная справочная информация и копия базы данных для выполнения примеров из книги.
Примеры страниц (скриншоты)
Оглавление
Предисловие ..................................................................................................................... 9
Благодарности ................................................................................................................ 13
Бонус ................................................................................................................................ 14
Структура книги ........................................................................................................... 15
Глава 1. Введение в .NET ............................................................................................. 17
1.1. Платформа .NET ..................................................................................................................... 17
1.1.1. «Кубики» .NET ............................................................................................................. 18
1.1.2. Сборки ........................................................................................................................... 19
1.2. Обзор среды разработки Visual Studio .NET ........................................................................ 21
1.2.1. Работа с проектами и решениями ............................................................................... 21
1.2.2. Работа с файлами ......................................................................................................... 28
1.3. Простейший пример .NET-приложения ............................................................................... 29
1.3.1. Проект на языке C# ...................................................................................................... 29
1.3.2. Компиляция и запуск проекта на языке C# ................................................................ 30
1.4. Компиляция приложений ....................................................................................................... 32
1.4.1. Компиляция в .NET Framework ................................................................................... 32
1.4.2. Компиляция в .NET Core и .NET 5 ............................................................................. 33
1.5. Поставка сборок ...................................................................................................................... 35
1.6. Формат исполняемого файла .NET ....................................................................................... 38
Глава 2. Основы C#....................................................................................................... 40
2.1. Комментарии ........................................................................................................................... 40
2.2. Переменная ............................................................................................................................. 41
2.3. Именование элементов кода .................................................................................................. 44
2.4. Работа с переменными ........................................................................................................... 47
2.4.1. Строки и символы ........................................................................................................ 51
2.4.2. Массивы ........................................................................................................................ 52
2.4.3. Перечисления ............................................................................................................... 56
2.5. Простейшая математика ......................................................................................................... 59
2.6. Логические операции ............................................................................................................. 64
2.6.1. Условный оператор if ................................................................................................... 64
2.6.2. Условный оператор switch ........................................................................................... 67
2.6.3. Сокращенная проверка ................................................................................................ 68
2.7. Циклы ...................................................................................................................................... 69
2.7.1. Цикл for ......................................................................................................................... 69
2.7.2. Цикл while ..................................................................................................................... 72
2.7.3. Цикл do...while .............................................................................................................. 73
2.7.4. Цикл foreach ................................................................................................................. 73
2.8. Управление циклом ................................................................................................................ 75
2.8.1. Оператор break ............................................................................................................. 75
2.8.2. Оператор continue ........................................................................................................ 76
2.9. Константы ............................................................................................................................... 77
2.10. Нулевые значения ................................................................................................................. 78
2.11. Начальные значения переменных ....................................................................................... 78
Глава 3. Объектно-ориентированное программирование .................................................................. 80
3.1. Объекты на C# ........................................................................................................................ 80
3.2. Свойства .................................................................................................................................. 84
3.3. Методы .................................................................................................................................... 89
3.3.1. Описание методов ........................................................................................................ 90
3.3.2. Параметры методов ..................................................................................................... 92
3.3.3. Перегрузка методов ..................................................................................................... 98
3.3.4. Конструктор .................................................................................................................. 99
3.3.5. Статичность ................................................................................................................ 103
3.3.6. Рекурсия ...................................................................................................................... 107
3.3.7. Деструктор .................................................................................................................. 109
3.3.8. Упрощенный синтаксис ............................................................................................. 111
3.4. Метод Main() ......................................................................................................................... 111
3.5. Оператор Using ..................................................................................................................... 113
3.6. Объекты только для чтения ................................................................................................. 115
3.7. Объектно-ориентированное программирование ................................................................ 115
3.7.1. Наследование .............................................................................................................. 116
3.7.2. Инкапсуляция ............................................................................................................. 120
3.7.3. Полиморфизм ............................................................................................................. 123
3.8. Наследование от класса Object ............................................................................................ 124
3.9. Переопределение методов ................................................................................................... 126
3.10. Обращение к предку из класса .......................................................................................... 129
3.11. Вложенные классы ............................................................................................................. 129
3.12. Область видимости ............................................................................................................. 131
3.13. Ссылочные и простые типы данных ................................................................................. 134
3.14. Проверка класса объекта .................................................................................................... 135
3.15. Неявный тип данных var .................................................................................................... 135
3.16. Абстрактные классы ........................................................................................................... 137
3.17. Инициализация свойств ..................................................................................................... 139
3.18. Частицы класса ................................................................................................................... 140
Глава 4. Консольные приложения ................................................................................................. 142
4.1. Украшение консоли .............................................................................................................. 143
4.2. Работа с буфером консоли ................................................................................................... 145
4.3. Окно консоли ........................................................................................................................ 147
4.4. Запись в консоль ................................................................................................................... 147
4.5. Чтение данных из консоли ................................................................................................... 150
Глава 5. Продвинутое программирование ................................................................................... 152
5.1. Приведение и преобразование типов .................................................................................. 152
5.2. Все в .NET — это объекты ................................................................................................... 154
5.3. Работа с перечислениями Enum ........................................................................................... 155
5.4. Структуры ............................................................................................................................. 159
5.5. Дата и время .......................................................................................................................... 162
5.6. Класс строк ............................................................................................................................ 165
5.7. Перегрузка операторов ......................................................................................................... 168
5.7.1. Математические операторы ...................................................................................... 168
5.7.2. Операторы сравнения ................................................................................................ 171
5.7.3. Операторы преобразования ....................................................................................... 171
5.8. Шаблоны ............................................................................................................................... 173
5.9. Анонимные типы .................................................................................................................. 177
5.10. Кортежи ............................................................................................................................... 178
5.11. Форматирование строк ....................................................................................................... 179
Глава 6. Интерфейсы .................................................................................................................. 180
6.1. Объявление интерфейсов ..................................................................................................... 181
6.2. Реализация интерфейсов ...................................................................................................... 183
6.3. Использование реализации интерфейса ............................................................................. 184
6.4. Интерфейсы в качестве параметров .................................................................................... 186
6.5. Перегрузка интерфейсных методов .................................................................................... 187
6.6. Наследование ........................................................................................................................ 190
6.7. Клонирование объектов ....................................................................................................... 190
6.8. Реализация по умолчанию ................................................................................................... 192
Глава 7. Массивы и коллекции ................................................................................................... 194
7.1. Базовый класс для массивов ................................................................................................ 194
7.2. Невыровненные массивы ..................................................................................................... 196
7.3. Динамические массивы ........................................................................................................ 198
7.4. Индексаторы массива ........................................................................................................... 201
7.5. Интерфейсы массивов .......................................................................................................... 202
7.5.1. Интерфейс IEnumerable ............................................................................................. 203
7.5.2. Интерфейсы IComparer и IComparable .................................................................... 205
7.6. Оператор yield ....................................................................................................................... 209
7.7. Стандартные списки ............................................................................................................. 209
7.7.1. Класс Queue ................................................................................................................ 210
7.7.2. Класс Stack .................................................................................................................. 211
7.7.3. Класс Hashtable .......................................................................................................... 212
7.8. Типизированные массивы .................................................................................................... 213
Глава 8. Обработка исключительных ситуаций ............................................................................ 217
8.1. Исключительные ситуации .................................................................................................. 218
8.2. Исключения в C# .................................................................................................................. 220
8.3. Оформление блоков try ........................................................................................................ 223
8.4. Ошибки в визуальных приложениях ................................................................................... 224
8.5. Генерирование исключительных ситуаций ........................................................................ 226
8.6. Иерархия классов исключений ............................................................................................ 227
8.7. Собственный класс исключения .......................................................................................... 228
8.8. Блок finally ............................................................................................................................. 231
8.9. Переполнение ........................................................................................................................ 232
8.10. Замечание о производительности...................................................................................... 235
Глава 9. События ....................................................................................................................... 236
9.1. Делегаты ................................................................................................................................ 236
9.2. События и их вызов .............................................................................................................. 237
9.3. Использование собственных делегатов .............................................................................. 240
9.4. Делегаты изнутри ................................................................................................................. 245
9.5. Анонимные методы .............................................................................................................. 246
Глава 10. LINQ ............................................................................................................. 248
10.1. LINQ при работе с массивами ........................................................................................... 248
10.1.1. SQL-стиль использования LINQ ............................................................................ 249
10.1.2. Использование LINQ через методы ...................................................................... 251
10.2. Магия IEnumerable ............................................................................................................. 251
10.3. Доступ к данным ................................................................................................................. 255
10.4. LINQ для доступа к XML ................................................................................................... 256
Глава 11. Хранение информации .................................................................................................. 258
11.1. Файловая система ............................................................................................................... 258
11.2. Текстовые файлы ................................................................................................................ 261
11.3. Бинарные файлы ................................................................................................................. 264
11.4. XML-файлы ......................................................................................................................... 268
11.4.1. Создание XML-документов ................................................................................... 268
11.4.2. Чтение XML-документов ....................................................................................... 272
11.5. Потоки Stream ..................................................................................................................... 275
11.6. Потоки MemoryStream ........................................................................................................ 277
11.7. Сериализация ...................................................................................................................... 278
11.7.1. Отключение сериализации ..................................................................................... 281
11.7.2. Сериализация в XML .............................................................................................. 283
11.7.3. Особенности сериализации .................................................................................... 284
11.7.4. Управление сериализацией .................................................................................... 286
Глава 12. Многопоточность ................................................................................................ 289
12.1. Класс Thread ........................................................................................................................ 290
12.2. Передача параметра в поток .............................................................................................. 293
12.3. Конкурентный доступ ........................................................................................................ 295
12.4. Пул потоков ......................................................................................................................... 297
12.5. Домены приложений .NET ................................................................................................ 299
12.6. Ключевые слова async и await ........................................................................................... 302
12.7. Задачи или потоки — что выбрать? .................................................................................. 308
Глава 13. Добро пожаловать в веб-программирование ................................................................ 310
13.1. Создание первого веб-приложения ................................................................................... 310
13.2. Работа с конфигурацией сайта ........................................................................................... 319
13.3. Работа со статичными файлами ........................................................................................ 322
13.4. Модель – Представление – Контроллер ........................................................................... 323
13.5. Маршрутизация................................................................................................................... 325
13.6. Подробнее про контроллеры ............................................................................................. 331
13.7. Представления .................................................................................................................... 334
13.8. Модель представления ....................................................................................................... 338
13.9. Razor в .NET Core/.NET 5 .................................................................................................. 341
13.9.1. Комментарии ........................................................................................................... 341
13.9.2. Вывод данных в представлениях ........................................................................... 342
13.9.3. C#-код ...................................................................................................................... 343
13.9.4. Условные операторы .............................................................................................. 345
13.9.5. Циклы....................................................................................................................... 346
13.9.6. Исключительные ситуации .................................................................................... 349
13.9.7. Ключевое слово using ............................................................................................. 349
13.10. Создание представлений .................................................................................................. 351
13.10.1. Макеты ................................................................................................................... 351
13.10.2. Стартовый файл .................................................................................................... 356
13.10.3. Встраиваемые представления .............................................................................. 358
13.10.4. Компоненты .......................................................................................................... 361
13.10.5. Секции ................................................................................................................... 364
13.11. Работа с формами ............................................................................................................. 366
13.12. Проверка данных .............................................................................................................. 371
13.13. Работа с сессиями ............................................................................................................. 374
13.14. Cookie ................................................................................................................................ 377
13.15. Доступ к запросу ............................................................................................................... 378
Глава 14. Управляемый код......................................................................................................... 380
14.1. Ссылочные и значимые типа ............................................................................................. 380
14.2. Интерфейс IDisposable ....................................................................................................... 384
14.3. Небезопасный код ............................................................................................................... 387
14.4. Разрешение небезопасного кода ........................................................................................ 388
14.5. Указатели ............................................................................................................................. 389
14.6. Память ................................................................................................................................. 392
14.7. Системные функции ........................................................................................................... 394
Глава 15. Базы данных .............................................................................................................. 397
15.1. Библиотека ADO.NET ........................................................................................................ 397
15.2. Строка подключения .......................................................................................................... 399
15.3. Подключение к базе данных .............................................................................................. 401
15.4. Инъекция зависимостей на примере подключений ............................................................... 404
15.5. Пул соединений .................................................................................................................. 407
15.6. Чтение данных из БД .......................................................................................................... 409
15.7. Запросы с параметрами ...................................................................................................... 413
15.8. Редактирование данных ..................................................................................................... 416
15.9. Транзакции .......................................................................................................................... 416
15.10. Библиотека Dapper ............................................................................................................ 417
Глава 16. Повторное использование кода ....................................................................................... 420
16.1. Библиотеки .......................................................................................................................... 420
16.2. Создание библиотеки ......................................................................................................... 421
16.3. Приватные сборки .............................................................................................................. 427
Глава 17. Сетевое программирование ........................................................................................... 429
17.1. HTTP-клиент ....................................................................................................................... 429
17.2. Прокси-сервер ..................................................................................................................... 432
17.3. Класс Uri .............................................................................................................................. 433
17.4. Сокеты ................................................................................................................................. 435
17.5. Парсинг документа .............................................................................................................. 445
17.6. Клиент-сервер ..................................................................................................................... 450
Заключение ................................................................................................................................. 457
Список литературы....................................................................................................................... 458
Приложение. Описание электронного архива, сопровождающего книгу ............................................ 459
Предметный указатель .................................................................................................................. 460