ebook img

Библия C# PDF

558 Pages·2009·9.713 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Библия C#

Ìèõàèë Ôëåíîâ Ñàíêò-Ïåòåðáóðã «ÁÕÂ-Ïåòåðáóðã» 2009 УДК 681.3.068+800.92C# ББК 32.973.26-018.1 Ф69 Фленов М. Е. Ф69 Библия C#. — СПб.: БХВ-Петербург, 2009. — 560 с.: ил. + CD-ROM ISBN 978-5-9775-0429-4 Книга посвящена программированию на языке C# для платформы Microsoft .NET, начиная с основ языка и разработки программ для работы в режиме командной строки и заканчивая созданием современных прило- жений различной сложности (баз данных, графических программ и др.). Материал сопровождается большим количеством практических примеров. Подробно описывается логика выполнения каждого участка программы. Уделено внимание вопросам повторного использования кода. Компакт-диск содержит примеры программ, дополнительную справочную информацию, а также готовые компоненты, тестовые программы и изображения. Для программистов УДК 681.3.068+800.92C# ББК 32.973.26-018.1 Группа подготовки издания: Главный редактор Екатерина Кондукова Зам. главного редактора Игорь Шишигин Зав. редакцией Григорий Добин Редактор Нина Седых Компьютерная верстка Ольги Сергиенко Корректор Зинаида Дмитриева Дизайн серии Инны Тачиной Оформление обложки Елены Беляевой Зав. производством Николай Тверских Ëèöåíçèÿ ÈÄ ¹ 02429 îò 24.07.00. Ïîäïèñàíî â ïå÷àòü 30.06.09. Ôîðìàò 70×1001/ . Ïå÷àòü îôñåòíàÿ. Óñë. ïå÷. ë. 45,15. 16 Òèðàæ 2000 ýêç. Çàêàç ¹ "ÁÕÂ-Ïåòåðáóðã", 190005, Ñàíêò-Ïåòåðáóðã, Èçìàéëîâñêèé ïð., 29. Ñàíèòàðíî-ýïèäåìèîëîãè÷åñêîå çàêëþ÷åíèå íà ïðîäóêöèþ ¹ 77.99.60.953.Ä.003650.04.08 îò 14.04.2008 ã. âûäàíî Ôåäåðàëüíîé ñëóæáîé ïî íàäçîðó â ñôåðå çàùèòû ïðàâ ïîòðåáèòåëåé è áëàãîïîëó÷èÿ ÷åëîâåêà. Îòïå÷àòàíî ñ ãîòîâûõ äèàïîçèòèâîâ â ÃÓÏ "Òèïîãðàôèÿ "Íàóêà" 199034, Ñàíêò-Ïåòåðáóðã, 9 ëèíèÿ, 12 ISBN 978-5-9775-0429-4 © Фленов М. Е., 2009 © Оформление, издательство "БХВ-Петербург", 2009 Îãëàâëåíèå Введение .................................................................................................................. 1 Благодарности ...................................................................................................................... 5 Бонус ..................................................................................................................................... 5 Структура книги ................................................................................................................... 5 Глава 1. Введение в .NET ..................................................................................... 7 1.1. Платформа .NET ........................................................................................................... 7 1.1.1. Кубики .NET ........................................................................................................ 8 1.1.2. Сборки ................................................................................................................. 9 1.1.3. Язык программирования .................................................................................. 11 1.2. Обзор среды разработки Visual Studio .NET ............................................................ 11 1.2.1. Работа с проектами и решениями .................................................................... 12 1.2.2. Панель Server Explorer ..................................................................................... 16 1.2.3. Панель Toolbox .................................................................................................. 17 1.2.4. Панель Solution Explorer .................................................................................. 20 1.2.5. Панель Class View ............................................................................................. 23 1.2.6. Панель Properties .............................................................................................. 23 1.2.7. Работа с файлами .............................................................................................. 24 1.3. Простейший пример .NET-приложения .................................................................... 25 1.3.1. Проект на языке C# ........................................................................................... 25 1.3.2. Компиляция и запуск проекта на языке C# .................................................... 26 1.4. Компиляция приложений ........................................................................................... 28 1.5. Поставка сборок .......................................................................................................... 30 1.6. Формат исполняемого файла .NET............................................................................ 34 Глава 2. Основы C# ............................................................................................ 36 2.1. Комментарии ............................................................................................................... 36 2.2. Переменные ................................................................................................................. 37 2.3. Именование ................................................................................................................. 40 IV Îãëàâëåíèå 2.4. Работа с переменными ................................................................................................ 44 2.4.1. Строки и символы ............................................................................................. 48 2.4.2. Массивы ............................................................................................................. 50 2.4.3. Перечисления .................................................................................................... 53 2.5. Простейшая математика ............................................................................................. 56 2.6. Логические операции .................................................................................................. 62 2.6.1. Условный оператор if ....................................................................................... 62 2.6.2. Условный оператор switch ............................................................................... 65 2.6.3. Сокращенная проверка ..................................................................................... 66 2.7. Циклы ........................................................................................................................... 66 2.7.1. Цикл for .............................................................................................................. 67 2.7.2. Цикл while .......................................................................................................... 70 2.7.3. Цикл do..while .................................................................................................... 71 2.7.4. Цикл foreach ...................................................................................................... 71 2.8. Управление циклом..................................................................................................... 73 2.8.1. Оператор break .................................................................................................. 73 2.8.2. Оператор continue ............................................................................................. 74 2.9. Константы .................................................................................................................... 75 Глава 3. Объектно-ориентированное программирование .......................... 77 3.1. Объекты в C# ............................................................................................................... 77 3.2. Свойства ....................................................................................................................... 81 3.3. Методы ......................................................................................................................... 86 3.3.1. Описание методов ............................................................................................. 88 3.3.2. Параметры методов .......................................................................................... 91 3.3.3. Перегрузка методов .......................................................................................... 97 3.3.4. Конструктор ...................................................................................................... 98 3.3.5. Статичность ..................................................................................................... 102 3.3.6. Рекурсивный вызов методов .......................................................................... 105 3.3.7. Деструктор ....................................................................................................... 107 3.4. Метод Main() ............................................................................................................. 109 3.5. Пространства имен.................................................................................................... 111 3.6. Начальные значения переменных ............................................................................ 113 3.7. Объекты только для чтения ...................................................................................... 114 3.8. Объектно-ориентированное программирование .................................................... 114 3.8.1. Наследование .................................................................................................. 115 3.8.2. Инкапсуляция .................................................................................................. 116 3.8.3. Полиморфизм .................................................................................................. 118 3.9. Наследование от класса Object ................................................................................ 119 3.10. Переопределение методов ...................................................................................... 121 3.11. Обращение к предку из класса ............................................................................... 124 3.12. Вложенные классы .................................................................................................. 125 3.13. Область видимости ................................................................................................. 127 3.14. Ссылочные и простые типы данных...................................................................... 129 Îãëàâëåíèå V 3.15. Абстрактные классы ............................................................................................... 130 3.16. Проверка класса объекта ........................................................................................ 133 Глава 4. Консольные приложения ................................................................. 134 4.1. Украшение консоли .................................................................................................. 135 4.2. Работа с буфером консоли ....................................................................................... 137 4.3. Окно консоли ............................................................................................................. 139 4.4. Запись в консоль ....................................................................................................... 139 4.5. Чтение данных из консоли ....................................................................................... 142 Глава 5. Визуальный интерфейс .................................................................... 144 5.1. Визуальное приложение ........................................................................................... 144 5.1.1. Пространства имен ......................................................................................... 146 5.1.2. Потоки.............................................................................................................. 148 5.1.3. Класс Application ............................................................................................. 149 5.2. Наследник Form для главной формы ...................................................................... 150 5.2.1. Ресурсы программы ........................................................................................ 150 5.2.2. Файл для логики модуля................................................................................. 151 5.2.3. Именование формы......................................................................................... 153 5.2.4. Код, сгенерированный дизайнером ............................................................... 153 5.2.5. Hello Visual World ........................................................................................... 157 5.3. Свойства формы ........................................................................................................ 158 5.4. Методы формы .......................................................................................................... 164 5.5. События на примере формы..................................................................................... 164 5.6. Компоненты .NET ..................................................................................................... 168 5.7. Общие компоненты ................................................................................................... 171 5.7.1. Button ............................................................................................................... 172 5.7.2. CheckBox .......................................................................................................... 175 5.7.3. CheckedListBox ................................................................................................ 175 5.7.4. ComboBox ........................................................................................................ 178 5.7.5. DateTimePicker ................................................................................................ 180 5.7.6. Label и LinkLabel ............................................................................................. 182 5.7.7. ListBox .............................................................................................................. 183 5.7.8. ListView ............................................................................................................ 183 5.7.9. PictureBox ........................................................................................................ 189 5.7.10. ProgressBar .................................................................................................... 190 5.7.11. RadioButton .................................................................................................... 191 5.7.12. TextBox ........................................................................................................... 192 5.7.13. TreeView ......................................................................................................... 192 5.8. Контейнеры ............................................................................................................... 198 5.8.1. GroupBox.......................................................................................................... 198 5.8.2. Panel ................................................................................................................. 199 5.8.3. TabControl ........................................................................................................ 199 5.8.4. FlowLayoutPanel и TableLayoutPanel ............................................................ 200 VI Îãëàâëåíèå 5.9. Меню и панели инструментов .................................................................................. 202 5.9.1. MenuStrip ......................................................................................................... 202 5.9.2. ContextMenuStrip ............................................................................................. 205 5.9.3. ToolStrip ........................................................................................................... 206 5.9.4. StatusStrip ......................................................................................................... 208 Глава 6. Продвинутое программирование ................................................... 209 6.1. Приведение и преобразование типов ...................................................................... 209 6.2. Объекты простых типов данных .............................................................................. 211 6.3. Перечисления Enum .................................................................................................. 212 6.4. Структуры .................................................................................................................. 216 6.5. Дата и время .............................................................................................................. 218 6.6. Класс строк ................................................................................................................ 221 6.7. Перегрузка операторов ............................................................................................. 223 6.7.1. Математические операторы ........................................................................... 224 6.7.2. Операторы сравнения ..................................................................................... 227 6.7.3. Операторы преобразования ........................................................................... 228 6.8. Тип var ....................................................................................................................... 230 6.9. Шаблоны .................................................................................................................... 231 Глава 7. Интерфейсы ........................................................................................ 236 7.1. Объявление интерфейсов ......................................................................................... 237 7.2. Реализация интерфейсов .......................................................................................... 238 7.3. Использование реализации интерфейса .................................................................. 240 7.4. Интерфейсы в качестве параметров ........................................................................ 243 7.5. Перегрузка интерфейсных методов ......................................................................... 244 7.6. Наследование ............................................................................................................. 247 7.7. Клонирование объектов ............................................................................................ 247 Глава 8. Массивы .............................................................................................. 250 8.1. Базовый класс для массивов..................................................................................... 250 8.2. Невыровненные массивы ......................................................................................... 252 8.3. Динамические массивы ............................................................................................ 254 8.4. Индексаторы массива ............................................................................................... 257 8.5. Интерфейсы массивов .............................................................................................. 258 8.5.1. Интерфейс IEnumerable .................................................................................. 259 8.5.2. Интерфейсы IComparer и IComparable ......................................................... 262 8.6. Оператор yield ........................................................................................................... 265 8.7. Стандартные списки ................................................................................................. 266 8.7.1. Класс Queue ..................................................................................................... 267 8.7.2. Класс Stack ....................................................................................................... 268 8.7.3. Класс Hashtable ............................................................................................... 268 8.8. Типизированные массивы ........................................................................................ 270 Îãëàâëåíèå VII Глава 9. Обработка исключительных ситуаций ........................................ 274 9.1. Исключительные ситуации ...................................................................................... 274 9.2. Исключения в C# ....................................................................................................... 277 9.3. Оформление блоков try ............................................................................................. 280 9.4. Ошибки в визуальных приложениях ....................................................................... 282 9.5. Генерирование исключительных ситуаций ............................................................ 283 9.6. Иерархия классов исключений ................................................................................ 285 9.7. Собственный класс исключения .............................................................................. 286 9.8. Блок finally ................................................................................................................. 289 9.9. Переполнение ............................................................................................................ 290 Глава 10. События в C# ................................................................................... 294 10.1. Делегаты .................................................................................................................. 294 10.2. События и их вызов ................................................................................................ 295 10.3. Использование собственных делегатов ................................................................. 299 10.4. Делегаты изнутри .................................................................................................... 304 10.5. Анонимные методы ................................................................................................ 305 10.6. Динамическое создание компонентов ................................................................... 306 Глава 11. Формы ............................................................................................... 309 11.1. Диалоговые окна ..................................................................................................... 310 11.2. Редактирование объектов ....................................................................................... 314 11.3. Специфичный результат ......................................................................................... 319 11.4. Немодальные окна .................................................................................................. 322 11.5. Многодокументный интерфейс ............................................................................. 322 Глава 12. Небезопасное программирование ................................................ 326 12.1. Разрешение небезопасного кода ............................................................................ 327 12.2. Указатели ................................................................................................................. 328 12.3. Память ...................................................................................................................... 332 12.4. Системные функции................................................................................................ 334 Глава 13. Графика ............................................................................................. 337 13.1. Введение в Graphics ................................................................................................ 337 13.2. Рисование по событию Paint .................................................................................. 340 13.3. Рисование без события Paint .................................................................................. 341 13.4. Цвета ........................................................................................................................ 343 13.5. Перья ........................................................................................................................ 345 13.6. Кисти ........................................................................................................................ 348 13.7. Работа с картинками ............................................................................................... 349 13.8. Графический дизайнер ............................................................................................ 354 13.9. Рисование элементов списка ListBox ..................................................................... 359 VIII Îãëàâëåíèå Глава 14. Хранение информации ................................................................... 364 14.1. Реестр ....................................................................................................................... 364 14.2. Файловая система.................................................................................................... 370 14.3. Текстовые файлы .................................................................................................... 375 14.4. Бинарные файлы ..................................................................................................... 378 14.5. XML-файлы ............................................................................................................. 382 14.5.1. Создание XML-документов ....................................................................... 383 14.5.2. Чтение XML-документов ........................................................................... 388 14.6. Потоки Stream ......................................................................................................... 392 14.7. Потоки MemoryStream ............................................................................................ 393 14.8. Сериализация ........................................................................................................... 395 14.9. Отключение сериализации ..................................................................................... 398 14.10. Особенности сериализации .................................................................................. 399 14.11. Управление сериализацией .................................................................................. 402 Глава 15. Многопоточность ............................................................................ 405 15.1. Класс Thread ............................................................................................................ 406 15.2. Передача параметра в поток .................................................................................. 410 15.3. Потоки с использованием делегатов ..................................................................... 411 15.4. Конкурентный доступ ............................................................................................. 414 15.5. Доступ к компонентам ............................................................................................ 417 15.6. Пул потоков ............................................................................................................. 420 15.7. Домены приложений .NET ..................................................................................... 421 Глава 16. Базы данных ..................................................................................... 425 16.1. ADO.NET ................................................................................................................. 425 16.2. Строка подключения ............................................................................................... 428 16.3. Подключение к базе данных .................................................................................. 433 16.4. Пул соединений ....................................................................................................... 435 16.5. Выполнение команд ................................................................................................ 437 16.6. Транзакции .............................................................................................................. 439 16.7. Наборы данных ....................................................................................................... 441 16.8. Чтение результата запроса ..................................................................................... 446 16.9. Работа с процедурами ............................................................................................. 448 16.10. Методы OleDbCommand ....................................................................................... 454 16.11. Отсоединенные данные ........................................................................................ 456 16.12. Адаптер DataAdapter ............................................................................................ 460 16.12.1. Конструктор ............................................................................................ 461 16.12.2. Получение результата запроса ............................................................... 461 16.12.3. Сохранение изменений в базе данных .................................................. 462 16.12.4. Связанные таблицы ................................................................................. 465 16.12.5. Добавление данных ................................................................................. 466 16.12.6. Удаление данных .................................................................................... 468 Îãëàâëåíèå IX 16.13. Набор данных DataSet .......................................................................................... 469 16.13.1. Хранение данных в DataSet.................................................................... 469 16.13.2. Класс DataRow ........................................................................................ 472 16.13.3. Класс DataColumn ................................................................................... 474 16.13.4. Таблица DataTable .................................................................................. 476 16.14. Таблицы в памяти ................................................................................................. 477 16.15. Выражения ............................................................................................................. 479 16.16. Ограничения .......................................................................................................... 481 16.17. Манипулирование данными ................................................................................. 483 16.17.1. Добавление строк .................................................................................... 483 16.17.2. Редактирование данных .......................................................................... 485 16.17.3. Поиск данных .......................................................................................... 487 16.17.4. Удаление строк ........................................................................................ 487 16.18. Связанные данные ................................................................................................. 488 16.19. Ограничение внешнего ключа ............................................................................. 492 16.20. Фильтрация данных .............................................................................................. 500 16.21. Представление данных DataView ........................................................................ 502 16.22. Схема данных ........................................................................................................ 506 Глава 17. Повторное использование кода .................................................... 509 17.1. Библиотеки .............................................................................................................. 509 17.2. Создание библиотеки .............................................................................................. 510 17.3. Приватные сборки ................................................................................................... 514 17.4. Общие сборки .......................................................................................................... 517 17.5. Создание пользовательских компонентов ............................................................ 519 17.6. Установка компонентов .......................................................................................... 527 Глава 18. Удаленное взаимодействие ........................................................... 529 18.1. Удаленное взаимодействие в .NET ........................................................................ 530 18.2. Структура распределенного приложения ............................................................. 531 18.3. Общая сборка .......................................................................................................... 533 18.4. Сервер ...................................................................................................................... 534 18.5. Клиент ...................................................................................................................... 538 Заключение ......................................................................................................... 541 Приложение. Описание компакт-диска ........................................................ 542 Список литературы .......................................................................................... 543 Предметный указатель .................................................................................... 544

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.