Интернет-магазин My-shop.ru
Акции   
Персональный раздел v
   Доставка    Оплата    Скидки    Форум    Помощь
для Москвы  +7 (495) 638-53-38
бесплатно для РФ  +7 (800) 100-53-38
 
0
• 
Книги (692184)
• 
Компьютерная литература (3959)
• 
Разработка ПО (1268)
• 
Языки и среды программирования, технологии и т.п. (792)
• 
.NET, ASP.NET, VB.NET, C# (146)



С# 4.0 на примерах

Ватсон Бен (найти все товары)

С# 4.0 на примерахНа практических примерах рассмотрено программирование на языке Microsoft C#4.0, начиная с основ языка и заканчивая решением типичных задач с помощью .NET Framework. Показано создание эффективных классов, интерфейсов и типов, а также программного кода, допускающего многократное использование. Описаны приемы обработки данных, основанные на применении коллекций, сериализации, баз данных и XML. Рассмотрена реализация пользовательского интерфейса с применением технологий WinForms и WPF, а также создание веб-приложений на основе технологий ASP.NET и Silverlight. Показано применение на практике новых возможностей языка С# 4.0. Уделено внимание взаимодействию с ОС Windows и системным ПО, использованию шаблонов для разработки сложных программ и др. Приведено более 200 готовых решений, оптимальных технических приемов и примеров проверенного кода.

Издательство: БХВ-Петербург

Рейтинг: 5.0 (голосов: 4)
Ваша оценка: 1 2 3 4 5  

дата выпуска: 2011 г. 
язык: русский
количество томов: 1
количество страниц: 608 стр.
переплет: мягкий
формат: 70x100/16 (170x240 мм)
тираж: 1700 экз.
стандарт: 6 шт.
возрастная категория: 18+ (нет данных)
код системы скидок: 25
код в My-shop.ru: 635777

ISBN: 978-5-9775-0608-3


Ватсон Бенавтор/составительВатсон Бен, найти все товары


Содержание:

Оглавление Об авторе 2
Благодарности 3
Введение 5
Краткий обзор книги 5
Как извлечь максимум пользы из этой книги 5
Как углубить и расширить свои знания 7

ЧАСТЬ I. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ C#

9

Глава 1. Основы работы с типами

11
Создание класса 11
Определение полей, свойств и методов 12
Определение статических членов 14
Написание конструктора 14
Инициализация свойств при конструировании 15
Применение модификаторов const и readonly 16
Повторное использование кода в нескольких конструкторах 16
Создание производного класса 17
Вызов конструктора базового класса 18
Переопределение метода или свойства базового класса 18
Создание интерфейса 21
Реализация интерфейсов 22
Создание структуры 23
Создание анонимного типа 24
Предотвращение создания экземпляра с помощью абстрактного класса 25
Интерфейс или абстрактный базовый класс? 25

Глава 2. Создание типов с разносторонней функциональностью

27
Форматирование типа методом ToString() 27
Создание типов, допускающих выяснение равенства 31
Создание типов, хешируемых методом GetHashCode() 32
Создание сортируемых типов 33
Создание индекса у типов 34
Уведомление клиентов об изменении состояния объекта 36
Перегрузка операций 37
Преобразование одного типа в другой 38
Предотвращение наследования 40
Разрешение типу значения принимать значение null 40

Глава 3. Общие принципы кодирования

42
Объявление переменных 42
Откладывание проверки типов до этапа выполнения (динамические типы) 43
Применение динамической типизации для упрощения взаимодействия с СОМ 45
Объявление массивов 46
Создание многомерных массивов 46
Создание псевдонима для пространства имен 47
Применение условной операции (?:) 48
Применение операции проверки на null (??) 48
Добавление методов в существующие типы с использованием методов расширения 49
Вызов методов с параметрами по умолчанию 51
Вызов методов с именованными параметрами 51
Откладывание вычисления значения до момента обращения к нему 52
Создание контрактов кода 53

Глава 4. Исключения

57
Возбуждение исключения 57
Обработка исключения 57
Обработка нескольких исключений 58
Повторное возбуждение исключения 59
Практически гарантированное выполнение кода с использованием блока finally 60
Получение информации от исключения 61
Создание собственного исключения 63
Перехват необработанных исключений 65
Советы по работе с исключениями 69

Глава 5. Числа

70
Выбор между типами float, double и decimal 70
Работа с очень большими числами (тип BigInteger) 71
Работа с комплексными числами 72
Форматирование числа в строку 74
Преобразование строки в число 78
Преобразование числа из одной системы счисления в другую 79
Преобразование числа в байты (и обратно) 81
Выяснение четности числа 82
Выяснение, является ли число степенью двойки 83
Выяснение, является ли число простым 83
Подсчет количества установленных битов 84
Пересчет градусов в радианы 84
Округление 85
Генерирование "хороших" случайных чисел 87
Генерирование уникальных идентификационных номеров (GUID) 88

Глава 6. Перечисления

90
Объявление перечисления 90
Объявление флагов в виде перечисления 91
Выяснение, установлен ли флаг 92
Преобразование перечисления в целое (и обратно) 92
Проверка допустимости значений перечисления 93
Получение списка значений перечисления 93
Преобразование строки в перечисление 93
Добавление метаданных к перечислению с помощью методов расширения 94
Советы по использованию перечислений 96

Глава 7. Строки

97
Преобразование строки в байтовое представление (и обратно) 97
Создание собственной схемы кодирования 98
Корректное сравнение строк 102
Корректная смена регистра 103
Распознавание пустых строк 103
Конкатенация строк: обязательно ли использовать класс StringBuilder? 104
Конкатенация элементов коллекции в одну строку 106
Добавление символа новой строчки 107
Разбивка строки 107
Преобразование двоичных данных в строку (кодировка base-64) 109
Изменение порядка слов на обратный 110
Естественная сортировка строк 111

Глава 8. Регулярные выражения

116
Поиск в тексте 116
Извлечение фрагментов текста 117
Замена фрагмента текста 117
Проверка допустимости 118
Повышение производительности регулярных выражений 120

Глава 9. Универсальные типы

121
Создание универсального списка 121
Создание универсального метода 122
Создание универсального интерфейса 123
Создание универсального класса 124
Создание универсального делегата 125
Работа с несколькими универсальными типами 126
Накладывание ограничений на универсальный тип 127
Преобразование IEnumerable<string> в IEnumerable<object> (ковариантность) 129
Преобразование IComparer<Child> в IComparer<Parent> (контравариантность) 130
Создание кортежей (пар, троек и т. д.) 131

ЧАСТЬ II. ОБРАБОТКА ДАННЫХ

133

Глава 10. Коллекции

135
Выбор подходящего класса-коллекции 135
Инициализация коллекции 137
Перебор элементов коллекции без привязки к ее реализации 137
Создание собственной коллекции 138
Создание собственных итераторов для коллекции 142
Изменение порядка элементов массива на обратный 145
Изменение порядка элементов связного списка на обратный 146
Извлечение уникальных элементов из коллекции 147
Подсчет количества вхождений элемента 147
Реализация очереди с приоритетами 148
Создание префиксного дерева 152

Глава 11. Файлы и сериализация

156
Создание, чтение и запись файла 156
Удаление файла 159
Комбинирование потоков данных (сжатие файла) 159
Выяснение размера файла 161
Получение информации, связанной с безопасностью 161
Проверка существования файла и каталога 162
Список дисков 163
Список каталогов и файлов 164
Обзор каталогов 165
Поиск файла или каталога 165
Манипуляции с путями к файлам 167
Создание уникальных или временных имен для файлов 169
Отслеживание изменений в файловой системе 169
Получение пути к каталогам My Documents, My Pictures и т. д. 171
Сериализация объектов 171
Сериализация в буфер в памяти 174
Хранение данных приложения, имеющего ограниченные права 175

Глава 12. Работа в сетях и во Всемирной паутине

177
Определение IP-адреса по имени хоста 177
Выяснение имени хоста и IP-адреса у данного компьютера 178
"Пингование" компьютера 178
Выяснение информации о сетевой карте 179
Создание сервера и клиента на базе TCP/IP 179
Отправка электронного письма по протоколу SMTP 183
Загрузка содержимого веб-страницы по протоколу HTTP 184
Выгрузка файла по протоколу FTP 188
Удаление тегов из HTML-кода 188
Встраивание веб-браузера в приложение 189
Прием RSS-ленты новостей 191
Динамическое генерирование RSS-ленты новостей в IIS 194
Взаимодействие между процессами на одном компьютере (WCF) 196
Взаимодействие между двумя компьютерами в одной сети (WCF) 203
Взаимодействие через Интернет (WCF) 204
Обнаружение служб на этапе выполнения (WCF) 206

Глава 13. Базы данных

210
Создание базы данных в Visual Studio 210
Соединение с базой и чтение данных 212
Добавление данных в таблицу 218
Удаление данных из таблицы 219
Выполнение хранимой процедуры 219
Транзакции 220
Связывание данных с элементом управления при помощи класса DataSet 222
Выяснение доступности соединения с базой данных 230
Автоматическое отображение данных на объекты с помощью платформы Entity Framework 231

Глава 14. Язык XML

234
Сериализация объекта в XML и десериализация его 234
Создание XML-документа "с нуля" 238
Чтение XML-файла 240
Проверка корректности XML-документа 242
Выдача запроса к XML-документу с помощью XPath 243
Преобразование информации из базы данных в XML-документ 245
Преобразование XML-документа в HTML-документ 246

ЧАСТЬ III. Взаимодействие с пользователем

249

Глава 15. Делегаты, события и анонимные методы

251
Динамический вызов метода 251
Подписка на событие 253
Публикация события 254
Гарантия обновления пользовательского интерфейса в потоке пользовательского интерфейса 256
Присваивание анонимного метода делегату 258
Использование анонимных методов в качестве простых обработчиков событий 259
Использование преимуществ контравариантности 261

Глава 16. Технология Windows Forms

264
Создание модальных и немодальных форм 264
Добавление строки меню 265
Динамический перевод пунктов меню в неактивное состояние 268
Добавление строки состояния 268
Добавление панели инструментов 269
Создание интерфейса, включающего в себя подокно 270
Наследование формы 271
Создание собственного элемента управления 275
Применение таймера 280
Использование общих и пользовательских настроек конфигурации 281
Эффективное использование элемента ListView в виртуальном режиме 284
Наклон колесика мыши для горизонтальной прокрутки 286
Реализация Cut и Paste 290
Автоматический сброс индикатора ожидания 295

Глава 17. Графика с применением Windows Forms и GDI+

296
Определение цвета 296
Использование системного элемента управления для выбора цвета 297
Преобразование цветов между системами RGB и HSV 297
Рисование фигур 301
Создание перьев 304
Создание кистей с произвольными характеристиками 306
Преобразования 308
Рисование текста 310
Расположение текста по диагонали 310
Вывод изображений 310
Вывод прозрачных изображений 311
Рисование в буфере 312
Прямое обращение к пикселам для повышения эффективности 312
Рисование со сглаживанием 314
Перерисовка без мерцания 315
Изменение размеров изображения 316
Создание миниатюры 316
Захват многоэкранного изображения 318
Вычисление расстояния от указателя мыши до заданной точки 320
Выяснение местоположения точки относительно прямоугольника 320
Выяснение местоположения точки относительно круга 321
Выяснение местоположения точки относительно эллипса 321
Выяснение факта пересечения двух прямоугольников 322
Печать и предварительный просмотр 322

Глава 18. WPF

328
Открытие окна 328
Выбор компоновки интерфейса 329
Добавление строки меню 330
Добавление строки состояния 331
Добавление панели инструментов 332
Использование стандартных команд 333
Использование нестандартных команд 333
Перевод команд из неактивного состояния в активное и обратно 336
Сворачивание и разворачивание группы элементов управления 337
Реагирование на события 338
Отделение внешнего вида от функциональности 339
Применение триггеров для смены стилей на этапе выполнения 340
Связывание свойств элемента управления с другим объектом 341
Форматирование значений при связывании данных 346
Преобразование типов значений при связывании данных 346
Связывание с коллекцией 348
Контроль за представлением связанных данных 348
Определение внешнего вида элементов управления с помощью шаблонов 349
Анимирование свойств элементов 351
Отображение трехмерной графики 352
Размещение видео на поверхности трехмерной фигуры 355
Размещение интерактивных элементов управления на поверхности трехмерной фигуры 358
Применение WPF в приложении WinForms 362
Применение WinForms в WPF-приложении 363

Глава 19. ASP.NET

364
Просмотр отладочной и трассировочной информации 364
Выяснение возможностей браузера 366
Перенаправление на другую страницу 367
Аутентификация с помощью формы для входа пользователя в систему 368
Использование главных страниц для достижения единства оформления 372
Добавление меню 373
Связывание данных с элементом управления GridView 374
Создание пользовательского элемента управления 376
Создание гибкого пользовательского интерфейса с элементами Web Parts 380
Создание простой страницы с использованием технологии AJAX 385
Проверка допустимости данных 387
Поддержание состояния приложения 392
Поддержание состояния пользовательского интерфейса 393
Поддержание пользовательских данных на протяжении сеанса 393
Сохранение состояния сеанса 395
Восстановление состояния сеанса с помощью cookie 396
Использование надстройки MVC над ASP.NET 398

Глава 20. Silverlight

404
Создание проекта Silverlight 404
Воспроизведение видео 405
Создание индикатора загрузки и воспроизведения 409
Реакция пользовательского интерфейса на события таймера 411
Создание трехмерной перспективы для содержимого страницы 413
Выполнение приложения за пределами браузера 414
Захват изображения с веб-камеры 415
Распечатка документа 417

ЧАСТЬ IV. Более сложные элементы языка С#

419

Глава 21. LINQ

421
Запрос к коллекции объектов 421
Упорядочивание результатов 423
Фильтрование коллекции 423
Получение коллекции на основе отдельных полей объектов (проекция) 424
Выполнение объединения 424
Запрос к XML-документу 425
Создание XML-документа 426
Запрос к Entity Framework 426
Запрос к веб-службе (LINQ to Bing) 428
Ускорение запросов с помощью PLINQ (Parallel LINQ) 430

Глава 22. Управление памятью

432
Измерение объема памяти, нужного приложению 432
Освобождение неуправляемых ресурсов с помощью финализации 433
Освобождение управляемых ресурсов с помощью шаблона Dispose 435
Принудительная сборка мусора 440
Создание кэша, позволяющего выполнять сборку мусора 440
Работа с указателями 443
Ускорение доступа к массивам 444
Предотвращение перемещения объектов в памяти 445
Выделение неуправляемой памяти 446

Глава 23. Потоки выполнения. Асинхронное и параллельное программирование

448
Распределение работы между несколькими процессорами 448
Использование структур данных в разных потоках выполнения 452
Асинхронный вызов метода 452
Работа с пулом потоков выполнения 454
Создание потока выполнения 454
Обмен данными с потоком выполнения 455
Защита данных, используемых в нескольких потоках выполнения 456
Применение методов класса Interlocked вместо блокировок 459
Защита данных в нескольких процессах 460
Ограничение количества экземпляров приложения до одного 461
Ограничение количества потоков выполнения, обращающихся к ресурсу 462
Отправка сигналов потокам выполнения с помощью механизма событий 464
Использование многопотокового таймера 468
Использование блокировки чтения/записи 468
Применение асинхронной модели программирования 470

Глава 24. Применение отражения и создание добавляемых модулей

474
Перечисление типов в сборке 474
Добавление нестандартного атрибута 475
Динамическое создание экземпляра класса 477
Вызов метода динамически созданного экземпляра класса 477
Реализация архитектуры с добавляемыми модулями 478

Глава 25. Шаблоны приложений и полезные советы по проектированию

483
Применение секундомера для профилирования кода 483
Пометка устаревшего кода 484
Объединение нескольких событий в одно 485
Реализация шаблона с наблюдателем (подписчиком) 489
Использование брокера событий 492
Запоминание местоположения на экране 495
Реализация отмены с помощью командных объектов 497
Применение модели Model-View-ViewModel в технологии WPF 504
Локализация 514
Локализация приложения Windows Forms 515
Локализация приложения ASP.NET 516
Локализация WPF-приложения 518
Локализация Silverlight-приложения 522
Развертывание приложений с использованием ClickOnce 524

Глава 26. Взаимодействие с операционной системой и аппаратной частью

527
Получение информации об операционной системе, пакете обновления и версии CLR 527
Получение информации о ЦПУ и других аппаратных средствах 528
Вызов UAC для запрашивания прав администратора 530
Запись в журнал событий 533
Обращение к Реестру 534
Управление службами Windows 536
Создание службы Windows 536
Вызов низкоуровневых функций Windows с помощью P/Invoke 539
Вызов библиотечных функций, написанных на языке С, из кода на языке С# 540
Работа с файлами, отображенными в память 541
Обеспечение работы приложения в 32-битовом и 64-битовом окружении 542
Реагирование на изменение системной конфигурации 544
Использование некоторых возможностей Windows 7 544
Получение информации о режиме питания 546

Глава 27. Полезные мелочи

547
Создание непрямоугольного окна 547
Создание информационной пиктограммы 551
Создание хранителя экрана в WPF 555
Вывод заставки 563
Воспроизведение звукового файла 568
Перетасовка карт 569
Приложение. Необходимые инструменты 571
Утилита Reflector 571
Среда NUnit 572
Программа NDepend 575
Программа FXCop 576
Виртуальная машина 577
Утилиты Process Explorer и Process Monitor 578
Программа RegexBuddy 579
Приложение LINQPad 580
Поиск инструментальных средств 581
Предметный указатель 583



нет в наличии
сообщить о поступлении в продажу

|