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

Бен Ватсон

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

Для программистов.

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

ISBN 978-5-9775-0608-3, 978-0-672-33063-6

Количество страниц: 608.

Содержание книги «С# 4.0 на примерах»:

  • 2 Об авторе
  • 3 Благодарности
  • 5 Введение
    • 5 Краткий обзор книги
    • 5 Как извлечь максимум пользы из этой книги
    • 7 Как углубить и расширить свои знания
  • 9 ЧАСТЬ I. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ C#
  • 11 Глава 1. Основы работы с типами
    • 11 Создание класса
    • 12 Определение полей, свойств и методов
    • 14 Определение статических членов
    • 14 Написание конструктора
    • 15 Инициализация свойств при конструировании
    • 16 Применение модификаторов const и readonly
    • 16 Повторное использование кода в нескольких конструкторах
    • 17 Создание производного класса
    • 18 Вызов конструктора базового класса
    • 18 Переопределение метода или свойства базового класса
    • 21 Создание интерфейса
    • 22 Реализация интерфейсов
    • 23 Создание структуры
    • 24 Создание анонимного типа
    • 25 Предотвращение создания экземпляра с помощью абстрактного класса
    • 25 Интерфейс или абстрактный базовый класс?
  • 27 Глава 2. Создание типов с разносторонней функциональностью
    • 27 Форматирование типа методом ToString()
    • 31 Создание типов, допускающих выяснение равенства
    • 32 Создание типов, хешируемых методом GetHashCode()
    • 33 Создание сортируемых типов
    • 34 Создание индекса у типов
    • 36 Уведомление клиентов об изменении состояния объекта
    • 37 Перегрузка операций
    • 38 Преобразование одного типа в другой
    • 40 Предотвращение наследования
    • 40 Разрешение типу значения принимать значение null
  • 42 Глава 3. Общие принципы кодирования
    • 42 Объявление переменных
    • 43 Откладывание проверки типов до этапа выполнения (динамические типы)
    • 45 Применение динамической типизации для упрощения взаимодействия с СОМ
    • 46 Объявление массивов
    • 46 Создание многомерных массивов
    • 47 Создание псевдонима для пространства имен
    • 48 Применение условной операции (?:)
    • 48 Применение операции проверки на null (??)
    • 49 Добавление методов в существующие типы с использованием методов расширения
    • 51 Вызов методов с параметрами по умолчанию
    • 51 Вызов методов с именованными параметрами
    • 52 Откладывание вычисления значения до момента обращения к нему
    • 53 Создание контрактов кода
  • 57 Глава 4. Исключения
    • 57 Возбуждение исключения
    • 57 Обработка исключения
    • 58 Обработка нескольких исключений
    • 59 Повторное возбуждение исключения
    • 60 Практически гарантированное выполнение кода с использованием блока finally
    • 61 Получение информации от исключения
    • 63 Создание собственного исключения
    • 65 Перехват необработанных исключений
    • 69 Советы по работе с исключениями
  • 70 Глава 5. Числа
    • 70 Выбор между типами float, double и decimal
    • 71 Работа с очень большими числами (тип BigInteger)
    • 72 Работа с комплексными числами
    • 74 Форматирование числа в строку
    • 78 Преобразование строки в число
    • 79 Преобразование числа из одной системы счисления в другую
    • 81 Преобразование числа в байты (и обратно)
    • 82 Выяснение четности числа
    • 83 Выяснение, является ли число степенью двойки
    • 83 Выяснение, является ли число простым
    • 84 Подсчет количества установленных битов
    • 84 Пересчет градусов в радианы
    • 85 Округление
    • 87 Генерирование «хороших» случайных чисел
    • 88 Генерирование уникальных идентификационных номеров (GUID)
  • 90 Глава 6. Перечисления
    • 90 Объявление перечисления
    • 91 Объявление флагов в виде перечисления
    • 92 Выяснение, установлен ли флаг
    • 92 Преобразование перечисления в целое (и обратно)
    • 93 Проверка допустимости значений перечисления
    • 93 Получение списка значений перечисления
    • 93 Преобразование строки в перечисление
    • 94 Добавление метаданных к перечислению с помощью методов расширения
    • 96 Советы по использованию перечислений
  • 97 Глава 7. Строки
    • 97 Преобразование строки в байтовое представление (и обратно)
    • 98 Создание собственной схемы кодирования
    • 102 Корректное сравнение строк
    • 103 Корректная смена регистра
    • 103 Распознавание пустых строк
    • 104 Конкатенация строк: обязательно ли использовать класс StringBuilder?
    • 106 Конкатенация элементов коллекции в одну строку
    • 107 Добавление символа новой строчки
    • 107 Разбивка строки
    • 109 Преобразование двоичных данных в строку (кодировка base-64)
    • 110 Изменение порядка слов на обратный
    • 111 Естественная сортировка строк
  • 116 Глава 8. Регулярные выражения
    • 116 Поиск в тексте
    • 117 Извлечение фрагментов текста
    • 117 Замена фрагмента текста
    • 118 Проверка допустимости
    • 120 Повышение производительности регулярных выражений
  • 121 Глава 9. Универсальные типы
    • 121 Создание универсального списка
    • 122 Создание универсального метода
    • 123 Создание универсального интерфейса
    • 124 Создание универсального класса
    • 125 Создание универсального делегата
    • 126 Работа с несколькими универсальными типами
    • 127 Накладывание ограничений на универсальный тип
    • 129 Преобразование IEnumerable в IEnumerable (ковариантность)
    • 130 Преобразование IComparer в IComparer (контравариантность)
    • 131 Создание кортежей (пар, троек и т. д.)
  • 133 ЧАСТЬ II. ОБРАБОТКА ДАННЫХ
  • 135 Глава 10. Коллекции
    • 135 Выбор подходящего класса-коллекции
    • 137 Инициализация коллекции
    • 137 Перебор элементов коллекции без привязки к ее реализации
    • 138 Создание собственной коллекции
    • 142 Создание собственных итераторов для коллекции
    • 145 Изменение порядка элементов массива на обратный
    • 146 Изменение порядка элементов связного списка на обратный
    • 147 Извлечение уникальных элементов из коллекции
    • 147 Подсчет количества вхождений элемента
    • 148 Реализация очереди с приоритетами
    • 152 Создание префиксного дерева
  • 156 Глава 11. Файлы и сериализация
    • 156 Создание, чтение и запись файла
    • 159 Удаление файла
    • 159 Комбинирование потоков данных (сжатие файла)
    • 161 Выяснение размера файла
    • 161 Получение информации, связанной с безопасностью
    • 162 Проверка существования файла и каталога
    • 163 Список дисков
    • 164 Список каталогов и файлов
    • 165 Обзор каталогов
    • 165 Поиск файла или каталога
    • 167 Манипуляции с путями к файлам
    • 169 Создание уникальных или временных имен для файлов
    • 169 Отслеживание изменений в файловой системе
    • 171 Получение пути к каталогам My Documents, My Pictures и т. д
    • 171 Сериализация объектов
    • 174 Сериализация в буфер в памяти
    • 175 Хранение данных приложения, имеющего ограниченные права
  • 177 Глава 12. Работа в сетях и во Всемирной паутине
    • 177 Определение IP-адреса по имени хоста
    • 178 Выяснение имени хоста и IP-адреса у данного компьютера
    • 178 «Пингование» компьютера
    • 179 Выяснение информации о сетевой карте
    • 179 Создание сервера и клиента на базе TCP/IP
    • 183 Отправка электронного письма по протоколу SMTP
    • 184 Загрузка содержимого веб-страницы по протоколу HTTP
    • 188 Выгрузка файла по протоколу FTP
    • 188 Удаление тегов из HTML-кода
    • 189 Встраивание веб-браузера в приложение
    • 191 Прием RSS-ленты новостей
    • 194 Динамическое генерирование RSS-ленты новостей в IIS
    • 196 Взаимодействие между процессами на одном компьютере (WCF)
    • 203 Взаимодействие между двумя компьютерами в одной сети (WCF)
    • 204 Взаимодействие через Интернет (WCF)
    • 206 Обнаружение служб на этапе выполнения (WCF)
  • 210 Глава 13. Базы данных
    • 210 Создание базы данных в Visual Studio
    • 212 Соединение с базой и чтение данных
    • 218 Добавление данных в таблицу
    • 219 Удаление данных из таблицы
    • 219 Выполнение хранимой процедуры
    • 220 Транзакции
    • 222 Связывание данных с элементом управления при помощи класса DataSet
    • 230 Выяснение доступности соединения с базой данных
    • 231 Автоматическое отображение данных на объекты с помощью платформы Entity Framework
  • 234 Глава 14. Язык XML
    • 234 Сериализация объекта в XML и десериализация его
    • 238 Создание XML-документа «с нуля
    • 240 Чтение XML-файла
    • 242 Проверка корректности XML-документа
    • 243 Выдача запроса к XML-документу с помощью XPath
    • 245 Преобразование информации из базы данных в XML-документ
    • 246 Преобразование XML-документа в HTML-документ
  • 249 ЧАСТЬ III. Взаимодействие с пользователем
  • 251 Глава 15. Делегаты, события и анонимные методы
    • 251 Динамический вызов метода
    • 253 Подписка на событие
    • 254 Публикация события
    • 256 Гарантия обновления пользовательского интерфейса в потоке пользовательского интерфейса
    • 258 Присваивание анонимного метода делегату
    • 259 Использование анонимных методов в качестве простых обработчиков событий
    • 261 Использование преимуществ контравариантности
  • 264 Глава 16. Технология Windows Forms
    • 264 Создание модальных и немодальных форм
    • 265 Добавление строки меню
    • 268 Динамический перевод пунктов меню в неактивное состояние
    • 268 Добавление строки состояния
    • 269 Добавление панели инструментов
    • 270 Создание интерфейса, включающего в себя подокно
    • 271 Наследование формы
    • 275 Создание собственного элемента управления
    • 280 Применение таймера
    • 281 Использование общих и пользовательских настроек конфигурации
    • 284 Эффективное использование элемента ListView в виртуальном режиме
    • 286 Наклон колесика мыши для горизонтальной прокрутки
    • 290 Реализация Cut и Paste
    • 295 Автоматический сброс индикатора ожидания
  • 296 Глава 17. Графика с применением Windows Forms и GDI+
    • 296 Определение цвета
    • 297 Использование системного элемента управления для выбора цвета
    • 297 Преобразование цветов между системами RGB и HSV
    • 301 Рисование фигур
    • 304 Создание перьев
    • 306 Создание кистей с произвольными характеристиками
    • 308 Преобразования
    • 310 Рисование текста
    • 310 Расположение текста по диагонали
    • 310 Вывод изображений
    • 311 Вывод прозрачных изображений
    • 312 Рисование в буфере
    • 312 Прямое обращение к пикселам для повышения эффективности
    • 314 Рисование со сглаживанием
    • 315 Перерисовка без мерцания
    • 316 Изменение размеров изображения
    • 316 Создание миниатюры
    • 318 Захват многоэкранного изображения
    • 320 Вычисление расстояния от указателя мыши до заданной точки
    • 320 Выяснение местоположения точки относительно прямоугольника
    • 321 Выяснение местоположения точки относительно круга
    • 321 Выяснение местоположения точки относительно эллипса
    • 322 Выяснение факта пересечения двух прямоугольников
    • 322 Печать и предварительный просмотр
  • 328 Глава 18. WPF
    • 328 Открытие окна
    • 329 Выбор компоновки интерфейса
    • 330 Добавление строки меню
    • 331 Добавление строки состояния
    • 332 Добавление панели инструментов
    • 333 Использование стандартных команд
    • 333 Использование нестандартных команд
    • 336 Перевод команд из неактивного состояния в активное и обратно
    • 337 Сворачивание и разворачивание группы элементов управления
    • 338 Реагирование на события
    • 339 Отделение внешнего вида от функциональности
    • 340 Применение триггеров для смены стилей на этапе выполнения
    • 341 Связывание свойств элемента управления с другим объектом
    • 346 Форматирование значений при связывании данных
    • 346 Преобразование типов значений при связывании данных
    • 348 Связывание с коллекцией
    • 348 Контроль за представлением связанных данных
    • 349 Определение внешнего вида элементов управления с помощью шаблонов
    • 351 Анимирование свойств элементов
    • 352 Отображение трехмерной графики
    • 355 Размещение видео на поверхности трехмерной фигуры
    • 358 Размещение интерактивных элементов управления на поверхности трехмерной фигуры
    • 362 Применение WPF в приложении WinForms
    • 363 Применение WinForms в WPF-приложении
  • 364 Глава 19. ASP.NET
    • 364 Просмотр отладочной и трассировочной информации
    • 366 Выяснение возможностей браузера
    • 367 Перенаправление на другую страницу
    • 368 Аутентификация с помощью формы для входа пользователя в систему
    • 372 Использование главных страниц для достижения единства оформления
    • 373 Добавление меню
    • 374 Связывание данных с элементом управления GridView
    • 376 Создание пользовательского элемента управления
    • 380 Создание гибкого пользовательского интерфейса с элементами Web Parts
    • 385 Создание простой страницы с использованием технологии AJAX
    • 387 Проверка допустимости данных
    • 392 Поддержание состояния приложения
    • 393 Поддержание состояния пользовательского интерфейса
    • 393 Поддержание пользовательских данных на протяжении сеанса
    • 395 Сохранение состояния сеанса
    • 396 Восстановление состояния сеанса с помощью cookie
    • 398 Использование надстройки MVC над ASP.NET
  • 404 Глава 20. Silverlight
    • 404 Создание проекта Silverlight
    • 405 Воспроизведение видео
    • 409 Создание индикатора загрузки и воспроизведения
    • 411 Реакция пользовательского интерфейса на события таймера
    • 413 Создание трехмерной перспективы для содержимого страницы
    • 414 Выполнение приложения за пределами браузера
    • 415 Захват изображения с веб-камеры
    • 417 Распечатка документа
  • 419 ЧАСТЬ IV. Более сложные элементы языка С#
  • 421 Глава 21. LINQ
    • 421 Запрос к коллекции объектов
    • 423 Упорядочивание результатов
    • 423 Фильтрование коллекции
    • 424 Получение коллекции на основе отдельных полей объектов (проекция)
    • 424 Выполнение объединения
    • 425 Запрос к XML-документу
    • 426 Создание XML-документа
    • 426 Запрос к Entity Framework
    • 428 Запрос к веб-службе (LINQ to Bing)
    • 430 Ускорение запросов с помощью PLINQ (Parallel LINQ)
  • 432 Глава 22. Управление памятью
    • 432 Измерение объема памяти, нужного приложению
    • 433 Освобождение неуправляемых ресурсов с помощью финализации
    • 435 Освобождение управляемых ресурсов с помощью шаблона Dispose
    • 440 Принудительная сборка мусора
    • 440 Создание кэша, позволяющего выполнять сборку мусора
    • 443 Работа с указателями
    • 444 Ускорение доступа к массивам
    • 445 Предотвращение перемещения объектов в памяти
    • 446 Выделение неуправляемой памяти
  • 448 Глава 23. Потоки выполнения. Асинхронное и параллельное программирование
    • 448 Распределение работы между несколькими процессорами
    • 452 Использование структур данных в разных потоках выполнения
    • 452 Асинхронный вызов метода
    • 454 Работа с пулом потоков выполнения
    • 454 Создание потока выполнения
    • 455 Обмен данными с потоком выполнения
    • 456 Защита данных, используемых в нескольких потоках выполнения
    • 459 Применение методов класса Interlocked вместо блокировок
    • 460 Защита данных в нескольких процессах
    • 461 Ограничение количества экземпляров приложения до одного
    • 462 Ограничение количества потоков выполнения, обращающихся к ресурсу
    • 464 Отправка сигналов потокам выполнения с помощью механизма событий
    • 468 Использование многопотокового таймера
    • 468 Использование блокировки чтения/записи
    • 470 Применение асинхронной модели программирования
  • 474 Глава 24. Применение отражения и создание добавляемых модулей
    • 474 Перечисление типов в сборке
    • 475 Добавление нестандартного атрибута
    • 477 Динамическое создание экземпляра класса
    • 477 Вызов метода динамически созданного экземпляра класса
    • 478 Реализация архитектуры с добавляемыми модулями
  • 483 Глава 25. Шаблоны приложений и полезные советы по проектированию
    • 483 Применение секундомера для профилирования кода
    • 484 Пометка устаревшего кода
    • 485 Объединение нескольких событий в одно
    • 489 Реализация шаблона с наблюдателем (подписчиком)
    • 492 Использование брокера событий
    • 495 Запоминание местоположения на экране
    • 497 Реализация отмены с помощью командных объектов
    • 504 Применение модели Model-View-ViewModel в технологии WPF
    • 514 Локализация
    • 515 Локализация приложения Windows Forms
    • 516 Локализация приложения ASP.NET
    • 518 Локализация WPF-приложения
    • 522 Локализация Silverlight-приложения
    • 524 Развертывание приложений с использованием ClickOnce
  • 527 Глава 26. Взаимодействие с операционной системой и аппаратной частью
    • 527 Получение информации об операционной системе, пакете обновления и версии CLR
    • 528 Получение информации о ЦПУ и других аппаратных средствах
    • 530 Вызов UAC для запрашивания прав администратора
    • 533 Запись в журнал событий
    • 534 Обращение к Реестру
    • 536 Управление службами Windows
    • 536 Создание службы Windows
    • 539 Вызов низкоуровневых функций Windows с помощью P/Invoke
    • 540 Вызов библиотечных функций, написанных на языке C, из кода на языке С#
    • 541 Работа с файлами, отображенными в память
    • 542 Обеспечение работы приложения в 32-битовом и 64-битовом окружении
    • 544 Реагирование на изменение системной конфигурации
    • 544 Использование некоторых возможностей Windows 7
    • 546 Получение информации о режиме питания
  • 547 Глава 27. Полезные мелочи
    • 547 Создание непрямоугольного окна
    • 551 Создание информационной пиктограммы
    • 555 Создание хранителя экрана в WPF
    • 563 Вывод заставки
    • 568 Воспроизведение звукового файла
    • 569 Перетасовка карт
  • 571 Приложение. Необходимые инструменты
    • 571 Утилита Reflector
    • 572 Среда NUnit
    • 575 Программа NDepend
    • 576 Программа FXCop
    • 577 Виртуальная машина
    • 578 Утилиты Process Explorer и Process Monitor
    • 579 Программа RegexBuddy
    • 580 Приложение LINQPad
    • 581 Поиск инструментальных средств
  • 583 Предметный указатель

Инструкция как скачать книгу Бен Ватсон: С# 4.0 на примерах в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
С# 4.0 на примерах
Рейтинг книги:
0 голосов
978

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: