Книга посвящена программированию на языке С# для платформы Microsoft NET, начиная с основ языка и разработки программ для работы в режиме командной строки и заканчивая созданием современных приложений различной сложности (баз данных, графических программ и др.). Материал сопровождается большим количеством практических примеров. Подробно описывается логика выполнения каждого участка программы. Уделено внимание вопросам повторного использования кода. Во второе издание внесены исправления и добавлена глава по сетевому программированию. Для программистов. Книга будет полезна всем, кто хочет научиться писать программы для платформы Microsoft .NET на современном и удобном языке программирования С#. Большое количество практических примеров, легкость изложения материала и интересные комментарии призваны сделать обучение занимательным и нескучным, а подробное описание логики выполнения каждого участка кода поможет читателю использовать полученные знания при разработке собственных приложений. Электронная справочная информация и статьи, содержащиеся на компакт-диске к книге, послужат дополнительным источником знаний в процессе дальнейшего обучения. Особого внимания заслуживают расположенные на CD готовые компоненты, изображения и тестовые программы компании CyD Software Labs, которые могут быть полезны для программистов и сетевых администраторов.
Author(s): Фленов М.Е.
Edition: 2, переработанное и дополненное
Publisher: БХВ-Петербург
Year: 2011
Language: Russian
Pages: 560
City: Санкт-Петербург
ВВЕДЕНИЕ1
БЛАГОДАРНОСТИ5
БОНУС7
СТРУКТУРА КНИГИ9
ГЛАВА 1. ВВЕДЕНИЕ В .NET
11
1.1.1. Кубики .NET12
1.1.2. Сборки14
1.2. Обзор среды разработки Visual Studio .NET16
1.2.1. Работа с проектами и решениями17
1.2.2. Server Explorer20
1.2.3. Toolbox22
1.2.4. Solution Explorer24
1.2.5. Class View27
1.2.6. Properties28
1.2.7. Работа с файлами28
1.3. Простейший пример .NET-приложения29
1.3.2. Компиляция и запуск проекта на языке C#30
1.4. Компиляция приложений33
1.5. Поставка сборок34
ГЛАВА 2. ОСНОВЫ C#
41
2.1. Комментарии41
2.2. Переменная42
2.3. Именование45
2.4. Работа с переменными49
2.4.1. Строки и символы52
2.4.2. Массивы54
2.4.3. Перечисления57
2.5. Простейшая математика60
2.6. Логические операции64
2.6.1. Условный оператор if65
2.6.2. Условный оператор switch67
2.6.3. Сокращенная проверка68
2.7. Циклы68
2.7.1. Цикл for69
2.7.2. Цикл while71
2.7.3. Цикл do..while72
2.7.4. Цикл foreach73
2.8. Управление циклом75
2.8.1. Оператор break75
2.8.2. Оператор continue75
2.9. Константы77
2.10. Нулевые значения77
ГЛАВА 3. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
79
3.1. Объекты на C#79
3.2. Свойства83
3.3. Методы88
3.3.1. Описание методов89
3.3.2. Параметры методов91
3.3.3. Перегрузка методов97
3.3.4. Конструктор98
3.3.5. Статичность101
3.3.6. Рекурсивный вызов методов104
3.3.7. Деструктор106
3.4. Метод Main()108
3.5. Пространства имен110
3.6. Начальные значения переменных112
3.7. Объекты только для чтения113
3.8. Объектно-ориентированное программирование113
3.8.1. Наследование114
3.8.2. Инкапсуляция115
3.8.3. Полиморфизм116
3.9. Наследование от класса Object117
3.10. Переопределение методов119
3.11. Обращение к предку из класса121
3.12. Вложенные классы122
3.13. Область видимости124
3.14. Ссылочные и простые типы данных126
3.15. Абстрактные классы127
3.16. Проверка класса объекта130
ГЛАВА 4. КОНСОЛЬНЫЕ ПРИЛОЖЕНИЯ
131
4.1. Украшение консоли131
4.2. Работа с буфером консоли134
4.3. Окно консоли135
4.4. Запись в консоль136
4.5. Чтение данных из консоли138
ГЛАВА 5. ВИЗУАЛЬНЫЙ ИНТЕРФЕЙС
141
5.1. Приложение141
5.1.1. Пространства имен143
5.1.2. Потоки145
5.1.3. Класс Application146
5.2. Наследник Form для главной формы147
5.2.1. Ресурсы программы147
5.2.2. Файл для логики модуля148
5.2.3. Именование формы149
5.2.4. Код, сгенерированный дизайнером150
5.2.5. Hello Visual World153
5.3. Свойства формы154
5.4. Методы формы159
5.5. События на примере формы160
5.6. Компоненты .NET163
5.7. Общие компоненты166
5.7.1. Button167
5.7.2. CheckBox170
5.7.3. CheckedListBox170
5.7.4. ComboBox173
5.7.5. DateTimePicker175
5.7.6. Label и LinkLabel176
5.7.7. ListBox177
5.7.8. ListView178
5.7.9. PictureBox183
5.7.10. ProgressBar184
5.7.11. RadioButton185
5.7.12. TextBox186
5.7.13. TreeView186
5.8. Контейнеры191
5.8.1. GroupBox191
5.8.2. Panel192
5.8.3. TabControl192
5.8.4. FlowLayoutPanel и TableLayoutPanel193
5.9. Меню и панели инструментов195
5.9.1. MenuStrip195
5.9.2. ContextMenuStrip197
5.9.3. ToolStrip199
5.9.4. StatusStrip200
ГЛАВА 6. ПРОДВИНУТОЕ ПРОГРАММИРОВАНИЕ
201
6.1. Приведение и преобразование типов201
6.2. Все в .NET это объекты203
6.3. Работа с перечислениями Enum204
6.4. Структуры207
6.5. Дата и время209
6.6. Класс строк211
6.7. Перегрузка операторов213
6.7.1. Математические операторы214
6.7.2. Операторы сравнения216
6.7.3. Операторы преобразования217
6.8. Тип var219
6.9. Шаблоны220
ГЛАВА 7. ИНТЕРФЕЙСЫ
225
7.1. Объявление интерфейсов225
7.2. Реализация интерфейсов227
7.3. Использование реализации интерфейса229
7.4. Интерфейсы в качестве параметров232
7.5. Перегрузка интерфейсных методов232
7.6. Наследование235
7.7. Клонирование объектов235
ГЛАВА 8. МАССИВЫ
239
8.1. Базовый класс для массивов239
8.2. Невыровненные массивы241
8.3. Динамические массивы243
8.4. Индексаторы массива245
8.5. Интерфейсы массивов246
8.5.1. Интерфейс IEnumerable247
8.5.2. Интерфейсы IComparer и IComparable249
8.6. Оператор yield253
8.7. Стандартные списки253
8.7.1. Класс Queue254
8.7.2. Класс Stack255
8.7.3. Класс Hashtable255
8.8. Типизированные массивы257
ГЛАВА 9. ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ
261
9.1. Исключительные ситуации261
9.2. Исключения в C#263
9.3. Оформление блоков try267
9.4. Ошибки в визуальных приложениях268
9.5. Генерирование исключительных ситуаций270
9.6. Иерархия классов исключений271
9.7. Собственный класс исключения272
9.8. Блок finally275
9.9. Переполнение276
ГЛАВА 10. СОБЫТИЯ В C#
281
10.1. Делегаты281
10.2. События и их вызов282
10.3. Использование собственных делегатов285
10.4. Делегаты изнутри290
10.5. Анонимные методы291
10.6. Динамическое создание компонентов292
ГЛАВА 11. ФОРМЫ
295
11.1. Диалоговые окна296
11.2. Редактирование объектов300
11.3. Специфичный результат304
11.4. Немодальные окна307
11.5. Многодокументный интерфейс307
ГЛАВА 12. НЕБЕЗОПАСНОЕ ПРОГРАММИРОВАНИЕ
311
12.1. Разрешение небезопасного кода312
12.2. Указатели313
12.3. Память316
12.4. Системные функции318
ГЛАВА 13. ГРАФИКА
321
13.1. Введение в Graphics321
13.2. Рисование по событию Paint323
13.3. Рисование без события Paint325
13.4. Цвета326
13.5. Перья328
13.6. Кисти330
13.7. Работа с картинками331
13.8. Графический дизайнер336
13.9. Рисование элементов списка ListBox341
ГЛАВА 14. ХРАНЕНИЕ ИНФОРМАЦИИ
345
14.1. Реестр345
14.2. Файловая система350
14.3. Текстовые файлы354
14.4. Бинарные файлы357
14.5. XML-файлы361
14.5.1. Создание XML-документов362
14.5.2. Чтение XML-документов365
14.6. Потоки Stream369
14.7. Потоки MemoryStream370
14.8. Сериализация372
14.8.1. Отключение сериализации375
14.8.2. Особенности сериализации376
14.8.3. Управление сериализацией378
ГЛАВА 15. МНОГОПОТОЧНОСТЬ
383
15.1. Класс Thread384
15.2. Передача параметра в поток387
15.3. Потоки с использованием делегатов388
15.4. Конкурентный доступ391
15.5. Доступ к компонентам394
15.6. Пул потоков396
15.7. Домены приложений .NET398
ГЛАВА 16. БАЗЫ ДАННЫХ
401
16.1. ADO.NET401
16.2. Строка подключения404
16.3. Подключение к базе данных408
16.4. Пул соединений410
16.5. Выполнение команд412
16.6. Транзакции413
16.7. Наборы данных415
16.8. Чтение результата запроса420
16.9. Работа с процедурами422
16.10. Методы OleDbCommand427
16.11. Отсоединенные данные429
16.12. Адаптер DataAdapter433
16.12.1. Конструктор434
16.12.2. Получение результата запроса434
16.12.3. Сохранение изменений в базе данных435
16.12.4. Связанные таблицы437
16.12.5. Добавление данных438
16.12.6. Удаление данных440
16.13. Набор данных DataSet441
16.13.1. Хранение данных в DataSet441
16.13.2. Класс DataRow444
16.13.3. Класс DataColumn446
16.13.4. Класс DataTable447
16.14. Таблицы в памяти448
16.15. Выражения450
16.16. Ограничения452
16.17. Манипулирование данными453
16.17.1. Добавление строк454
16.17.2. Редактирование данных455
16.17.3. Поиск данных457
16.17.4. Удаление строк457
16.18. Связанные данные458
16.19. Ограничение внешнего ключа462
16.20. Фильтрация данных469
16.21. Представление данных DataView471
16.22. Схема данных475
ГЛАВА 17. ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ КОДА
477
17.1. Библиотеки477
17.2. Создание библиотеки478
17.3. Приватные сборки482
17.4. Общие сборки484
17.5. Создание пользовательских компонентов486
17.6. Установка компонентов493
ГЛАВА 18. УДАЛЕННОЕ ВЗАИМОДЕЙСТВИЕ
495
18.1. Удаленное взаимодействие в .NET495
18.2. Структура распределенного приложения497
18.3. Общая сборка498
18.4. Сервер499
18.5. Клиент502
ГЛАВА 19. СЕТЕВОЕ ПРОГРАММИРОВАНИЕ
505
19.1. HTTP-клиент505
19.2. Прокси-сервер508
19.3. Класс Uri509
19.4. Сокеты511
19.5. Парсинг документа522
19.6. Клиент-сервер526
ЗАКЛЮЧЕНИЕ535
ОПИСАНИЕ КОМПАКТ-ДИСКА537
СПИСОК ЛИТЕРАТУРЫ539
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ541
IV Оглавление IX Оглавление