Справочник по C#

    Исходники по языку программирования CSharp

    C# 2008. Самоучитель: Справочник по C#

    /
    /
    /
    78 Views


    Название: C# 2008. Самоучитель                                                                 
    Автор: Кристиан Гросс
    Издательство: БХВ-Петербург
    Год: 2009
    Формат: pdf
    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

    Ссылка для скачивания книги: «Удалено по просьбе правообладателя»

    C# 2008. Самоучитель: Справочник по C#

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9