RUSSIAN

C# 2008 - Кристиан Гросс

Book information

Publisher
БХВ-Петербург
Year
2009
Language
russian
Format
DJVU
Filesize
5 MB (5425863 bytes)
Series
Apress
Pages
574\574
Library
www.infanata.com
Time added
2010-12-10 06:40:08

Description

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

Similar books