| Название: | C# 2008. Самоучитель |
| Автор: | Кристиан Гросс |
| Издательство: | БХВ-Петербург |
| Год: | 2009 |
| Формат: | |
| ISBN: | 978-5-9775-0287-0 |
| Язык: | Русский |
| Размер: | 6.80 МБ |
Материал книги излагается последовательно на примере решения различных типичных проблем, с которыми сталкиваются программисты. Описаны типы данных языка С#, их достоинства, недостатки и особенности применения. Рассмотрены операторы языка, основы объектно-ориентированного, компонентно-ориентированного и функционального программирования. Показаны особенности обработки строк и исключений, а также многопоточная обработка информации. Описаны принципы хранения данных, конфигурационные файлы приложения, динамическое выполнение кода.
Содержание:
- Об авторе 3
- О техническом рецензенте 5
- Введение 7
Глава 1. На старт, внимание, марш! 9
- Скачивание и установка инструментов 9
- Скачивание Visual C# Express 10
- Установка Visual C# Express 11
- Выбор типа приложения 12
- Создание проектов и решений 12
- Создание приложения Windows 13
- Просмотр исходного кода 14
- Переименование решения 15
- Сохранение решения 15
- Выполнение приложения Windows 16
- Заставляем приложение сказать «Hello» 17
- Вставка в приложение комментариев 20
- Перемещение по пользовательским элементам управления решения 22
- Создание консольного приложения 25
- Добавление консольного приложения в решение 25
- Заставляем консольное приложение сказать «Hello» 26
- Установка стартового проекта 26
- Запуск консольного проекта на выполнение 27
- Создание библиотеки класса 27
- Добавление библиотеки класса в решение 27
- Перемещение функциональности 28
- Определение ссылок 29
- Вызов функциональности библиотеки класса 29
- Использование переменных и констант 31
- Как работает .NET Framework? 34
- Советы разработчику 37
- Вопросы и задания для самопроверки 37
Глава 2. Типы данных в .NET 39
- Постановка задачи и организация процесса разработки 39
- Организация разработки программы Калькулятор 40
- Конкретизация процесса разработки программы Калькулятор 42
- Реализация библиотеки класса 45
- Метод Add() 47
- Код для тестирования метода Add() 50
- Проблемы с числами 55
- Типы данных 58
- Обычные и ссылочные типы данных 58
- Типы числовых данных среды CLR 60
- Завершение разработки Калькулятора 64
- Советы разработчику 65
- Вопросы и задания для самопроверки 66
Глава 3. Работа со строками 67
- Организация приложения перевода 67
- Создание приложения перевода 68
- Создание класса Translator 69
- Перевод слова «hello» 69
- Создание тестового приложения 70
- Вопрос разумного использования 71
- Исследование строкового типа 72
- Решение проблемы пробельных символов 78
- Заключение строк в кавычки 83
- Кодовые таблицы символов 84
- Языки и региональные стандарты 85
- Установка региональных стандартов и языка в Windows 86
- Анализ и обработка чисел 87
- Культурная среда 90
- Советы разработчику 92
- Вопросы и задания для самопроверки 93
Глава 4. Структуры данных, принятие решений и циклы 95
- Алгоритм поиска в глубину 95
- Реализация пользовательских типов 99
- Объявление структур и классов 99
- Ограничения обычных типов 100
- Организация алгоритма поиска 106
- Код для алгоритма поиска в глубину 108
- Определение и реализация структуры данных 108
- Определение теста для алгоритма 120
- Реализация алгоритма поиска в глубину 125
- Выполнение алгоритма поиска в глубину 133
- Советы разработчику 135
- Вопросы и задания для самопроверки 136
Глава 5. Обработка исключений в С# 137
- Ошибки, исключения и обработка исключений 138
- Работа с отладчиком 139
- Обработка исключений 140
- Перехват исключений 140
- Реализация обработчиков исключений 143
- Предотвращение раскрутки стека 147
- Фильтрация исключений 151
- Код, не вызывающий исключений 154
- Защитный код 154
- Использование состояния по умолчанию 157
- Обработка некритических ошибок 158
- Советы разработчику 159
- Вопросы и задания для самопроверки 160
Глава 6. Основы объектно-ориентированного программирования 161
- Что такое спрэд? 162
- Организация приложения для обмена валют 163
- Тесты для приложения обмена валют 164
- Введение в структурный код 164
- Базовые классы 165
- Что такое наследование? 166
- Использование свойств C# 168
- Наследование и модификаторы области видимости 172
- Верификация 176
- Завершение создания базового класса 179
- Модули коммерческого валютного маклера и обменного пункта отеля 180
- Реализация класса ActiveCurrencyTrader 180
- Реализация класса HotelCurrencyTrader 183
- Дополнительные сведения о директивах препроцессора, свойствах и абстрактных методах 186
- Директивы препроцессора 186
- Область видимости 188
- Ключевое слово abstract 188
- Советы разработчику 190
- Вопросы и задания для самопроверки 192
Глава 7. Компоненты и иерархии объектов 193
- Введение в основы налогообложения 193
- Организация приложения для вычисления налогов 194
- Программирование с использованием идей 195
- Представление идей с помощью интерфейсов C# 196
- Принципы работы наследования и компонентов 199
- Реализация движка для вычисления налогов 206
- Определение интерфейсов 206
- Реализация движка базового класса для вычисления налогов 207
- Стандартные реализации 213
- Реализация базового налогового счета 215
- Использование базовой функциональности движка для вычисления налогов 216
- Реализация налогового движка и налогового счета 217
- Применение налогового движка 222
- Дополнительные сведения о наследовании и приведении типов 222
- Наследование 223
- Приведение типов 229
- Советы разработчику 230
- Вопросы и задания для самопроверки 231
Глава 8. Компонентно-ориентированная архитектура 233
- Понятие ядра 233
- Организация приложения управления освещением 235
- Создание ядра 236
- Определение интерфейсов 237
- Реализация ядра 241
- Определение ядра в виде интерфейса, а не класса 261
- Создание полного приложения 263
- Определение комнат 263
- Создание экземпляров классов PublicRoom и PrivateRoom 264
- Частные классы и инициализация объектов 266
- Частные классы 266
- Инициализация объектов вложенными типами данных 267
- Советы разработчику 268
- Вопросы и задания для самопроверки 269
Глава 9. Списки, делегаты и лямбда-выражения 271
- Управление коллекциями 271
- Управление коллекциями до C# 2.0 272
- Управление коллекциями в C# 2.0 и последующих версиях 277
- Верен ли код? 278
- Делегаты 282
- Анонимные методы 287
- Групповое использование делегатов 289
- Лямбда-выражения 289
- Применение лямбда-выражений 292
- Создание алгоритма 293
- Реализация алгоритма с помощью лямбда-выражения 293
- Дополнительные сведения о типах коллекций 295
- Простой список 295
- Список пар «ключ/значение» 296
- Тип Stack 297
- Тип Queue 298
- Советы разработчику 298
- Вопросы и задания для самопроверки 299
Глава 10. Хранение данных 301
- Организация системы предсказания результатов лотереи 301
- Канальная пересылка данных с помощью консоли 302
- Считывание данных с консоли 303
- Создание оболочки 304
- Реализация приложения TextProcessor 315
- Пересылка двоичных данных 324
- Определение интерфейсов и реализация оболочки 326
- Определение типа 329
- Преобразование текстового потока в двоичный 331
- Преобразование двоичного потока в текстовый поток 332
- Тонкая настройка сериализации 334
- Специальная сериализация 334
- Объявление члена данных не подлежащим сериализации 336
- Отделение объектов данных от объектов действия 336
- Завершение создания пользовательского типа 337
- Реализация метода GetHashCode() 337
- Реализация метода Equals() 340
- Советы разработчику 342
- Вопросы и задания для самопроверки 343
Глава 11. Обобщения .NET 345
- Зачем использовать обобщения .NET? 345
- Теория в основе серверной электронной таблицы 349
- Разработка серверной электронной таблицы 352
- Проектирование архитектуры 353
- Определение интерфейсов серверной электронной таблицы 354
- Реализация серверной электронной таблицы 363
- Использование лямбда-выражений в электронной таблице 370
- Присваивание состояния при неизвестном типе 374
- Подмена функциональности метода ToString() 376
- Обработка данных в цикле с помощью перечисления 377
- Работа с электронной таблицей 379
- Вычисление среднего значения 379
- Объяснение работы вычислений 381
- Советы разработчику 382
- Вопросы и задания для самопроверки 383
Глава 12. Конфигурирование приложений и динамическая загрузка 385
- Соглашение превыше конфигурации 385
- Использование архитектуры конфигурирования для выполнения развязки 387
- Использование стандартной архитектуры для развязки 387
- Организация проектов динамической загрузки 388
- Подписывание сборки 390
- Указание пути вывода 391
- Определение и обработка конфигурационного файла 392
- Создание конфигурационного XML-файла 393
- Добавление элементов конфигурации динамической загрузки 394
- Считывание конфигурационного файла 395
- Динамическая загрузка сборки 396
- Динамическое создание экземпляра типа 396
- Усовершенствование конфигурационного файла 401
- Загрузка сборок со строгими именами 406
- Перемещение сборки со строгим именем в кэш GAC 408
- Использование номеров версий 410
- Реализация стандартной архитектуры 413
- Динамическая загрузка базового класса или типов интерфейса 416
- Советы разработчику 417
- Вопросы и задания для самопроверки 418
Глава 13. Многопоточная обработка 419
- Понимание многозадачности 420
- Вытесняющая многозадачность 420
- Квантование времени 421
- Использование потоков 423
- Создание нового потока 424
- Ожидание завершения исполняющегося потока 425
- Создание потока, имеющего состояние 426
- Синхронизация потоков 428
- Как избежать взаимоблокировок 435
- Реализация потоковой архитектуры «читатель/писатель» 440
- Реализация архитектуры «поставщик/потребитель» 444
- Скрытая реализация «поставщик/потребитель» 445
- Реализация общей архитектуры «поставщик/потребитель» 446
- Асинхронный подход 449
- Советы разработчику 451
- Вопросы и задания для самопроверки 452
Глава 14. Реляционные базы данных 453
- Организация реляционных баз данных 453
- Таблицы реляционных баз данных 454
- Отношения баз данных 455
- Обращение к реляционной базе данных 459
- Разработка базы данных с помощью Visual C# Express 461
- Конфигурирование источника данных 461
- Добавление таблиц 464
- Обращение к базе данных с помощью ADO.NET 468
- Подключение к базе данных 469
- Добавление данных в таблицу 469
- Выборка данных из таблицы 472
- Удаление записей из базы данных 472
- Закрытие подключения к базе данных 473
- Выводы об использовании ADO.NET 473
- Dataset Designer 474
- Создание отношений между таблицами 474
- Использование сгенерированного кода 479
- Советы разработчику 480
- Вопросы и задания для самопроверки 481
Глава 15. Знакомство с LINQ 483
- Определение частоты выпадения выигрышных номеров 483
- Расширение системы предсказания результатов лотереи 485
- Реализация решения подсчета частоты вхождения номеров 488
- Дополнительные приемы LINQ 495
- Выборка и изменение данных 499
- Выборка посредством анонимных типов 500
- Обработка нескольких потоков 502
- Сортировка результатов 502
- Разбивка результатов на группы 503
- Операции над множествами 505
- Использование LINQ в других контекстах 507
- Советы разработчику 509
- Вопросы и задания для самопроверки 509
Глава 16. Написание функционального кода на языке C# 511
- Зачем использовать функциональное программирование? 511
- Суть функционального программирования 514
- Функции высшего порядка 514
- Чистые функции 518
- Вычисление функций 524
- Рекурсия 527
- Советы разработчику 528
- Вопросы и задания для самопроверки 529
Глава 17. Другие методики C# 531
- Операторы 531
- Арифметические операторы 531
- Перегрузка операторов 536
- Оператор goto 539
- Ограничения обобщений .NET 540
- Ограничение type 540
- Ограничение new 542
- Ограничение class 543
- Нулевые типы 543
- Частичные классы и методы 545
- Советы разработчику 547
- Вопросы и задания для самопроверки 548
- Предметный указатель 549
Ссылка для скачивания книги: «Удалено по просьбе правообладателя»
0.00 (0%) 0 votes









