С# 4.0 на примерах
Book information
Description
На практических примерах рассмотрено программирование на языке Microsoft С# 4.0, начиная с основ языка и заканчивая решением типичных задач с помощью .NET Framework. Показано создание эффективных классов, интерфейсов и типов, а также программного кода, допускающего многократное использование. Описаны приемы обработки данных, основанные на применении коллекций, сериализации, баз данных и XML. Рассмотрена реализация пользовательского интерфейса с применением технологий WinForms и WPF, а также создание веб-приложений на основе технологий ASP.NET и Silverlight. Показано применение на практике новых возможностей языка С# 4.0. Уделено внимание взаимодействию с ОС Windows и системным ПО, использованию шаблонов для разработки сложных программ и др. Приведено более 200 готовых решений, оптимальных технических приемов и примеров проверенного кода. Оглавление посвящение Об авторе Благодарности Введение Краткий обзор книги Как извлечь максимум пользы из этой книги Как углубить и расширить свои знания Часть I. Основы программирования на языке C# Глава 1. Основы работы с типами Основы работы с типами Создание класса Определение статических членов Написание конструктора Создание статического конструктора и выполнение инициализации Инициализация свойств при конструировании Применение модификаторов const и readonly Повторное использование кода в нескольких конструкторах Создание производного класса Вызов конструктора базового класса Переопределение метода или свойства базового класса Переопределение невиртуальных методов и свойств Создание интерфейса Реализация интерфейсов Реализация нескольких интерфейсов Создание структуры Создание анонимного типа Предотвращение создания экземпляра с помощью абстрактного класса Интерфейс или абстрактный базовый класс? Глава 2. Создание типов с разносторонней функциональностью Форматирование типа методом ToString() Переопределение метода ToString() для целей простого вывода Реализация собственного форматирования с целью более гибкого управления выводом Форматирование с помощью ICustomFormatter и StringBuilder Создание типов, допускающих выяснение равенства Создание типов, хешируемых методом GetHashCode() Создание сортируемых типов Создание индекса у типов Реализация числового индекса Реализация строкового индекса Уведомление клиентов об изменении состояния объекта Перегрузка операций Реализация операции "+" Реализация операций "==" и "!=" Преобразование одного типа в другой Явное преобразование (с потерей точности) Неявное преобразование (без потери точности) Предотвращение наследования Предотвращение переопределения одного метода Разрешение типу значения принимать значение null Глава 3. Общие принципы кодирования Объявление переменных Использование автоматического распознавания типов (неявной типизации) Откладывание проверки типов до этапа выполнения (динамические типы) Применение динамической типизации для упрощения взаимодействия с СОМ Объявление массивов Создание многомерных массивов Создание прямоугольных массивов Создание ступенчатых массивов Создание псевдонима для пространства имен Применение условной операции (?:) Применение операции проверки на null (??) Добавление методов в существующие типы с использованием методов расширения Вызов методов с параметрами по умолчанию Вызов методов с именованными параметрами Откладывание вычисления значения до момента обращения к нему Создание контрактов кода Реализация контрактов для интерфейсов Глава 4. Исключения Возбуждение исключения Обработка исключения Обработка нескольких исключений Повторное возбуждение исключения Практически гарантированное выполнение кода с использованием блока finally Получение информации от исключения Создание собственного исключения Перехват необработанных исключений Перехват необработанных исключений в консольных приложениях Перехват необработанных исключений в приложениях Windows Forms Перехват необработанных исключений в приложениях WPF Перехват необработанных исключений в приложениях ASP.NET Советы по работе с исключениями Глава 5. Числа Выбор между типами float, double и decimal Работа с очень большими числами (тип BigInteger) Работа с комплексными числами Форматирование комплексного числа Форматирование числа в строку Форматирование числа под конкретную культуру Вывод шестнадцатеричных чисел Разбивка на триады Вывод ведущих нулей Указание количества десятичных знаков Использование собственной строки формата для более гибкого управления выводом Резюме сведений о форматировании чисел Преобразование строки в число Разбор шестнадцатеричного числа Преобразование числа из одной системы счисления в другую Преобразование из десятичной в двоичную, восьмеричную или шестнадцатеричную систему счисления Преобразование из десятичной в произвольную систему счисления Преобразование в десятичную систему счисления Преобразование числа в байты (и обратно) Выяснение четности числа Выяснение, является ли число степенью двойки Выяснение, является ли число простым Подсчет количества установленных битов Пересчет градусов в радианы Округление Округление чисел до ближайшего целого Генерирование "хороших" случайных чисел Генерирование уникальных идентификационных номеров (GUID) Глава 6. Перечисления Объявление перечисления Объявление перечисления с явным указанием значений Объявление флагов в виде перечисления Выяснение, установлен ли флаг Преобразование перечисления в целое (и обратно) Проверка допустимости значений перечисления Получение списка значений перечисления Преобразование строки в перечисление Преобразование строки в набор флагов Добавление метаданных к перечислению с помощью методов расширения Советы по использованию перечислений Глава 7. Строки Преобразование строки в байтовое представление (и обратно) Создание собственной схемы кодирования Корректное сравнение строк Корректная смена регистра Распознавание пустых строк Конкатенация строк: обязательно ли использовать класс StringBuilder? Конкатенация элементов коллекции в одну строку Добавление символа новой строчки Разбивка строки Преобразование двоичных данных в строку (кодировка base-64) Изменение порядка слов на обратный Естественная сортировка строк Глава 8. Регулярные выражения Поиск в тексте Извлечение фрагментов текста Замена фрагмента текста Проверка допустимости Номер социальной страховки Номер телефона Почтовый индекс Дата Адрес электронной почты Повышение производительности регулярных выражений Глава 9. Универсальные типы Создание универсального списка Создание универсального метода Создание универсального интерфейса Создание универсального класса Создание универсального делегата Работа с несколькими универсальными типами Накладывание ограничений на универсальный тип Ограничение до ссылочного типа Ограничение до типа значения Ограничение до интерфейса или базового класса Ограничение до типа с конструктором по умолчанию Наложение нескольких ограничений Наложение ограничений на несколько параметров-типов Преобразование IEnumerable в IEnumerable (ковариантность) Преобразование IComparer в IComparer (контравариантность) Создание кортежей (пар, троек и т. д.) Часть II. Обработка данных Глава 10. Коллекции Выбор подходящего класса-коллекции Использование коллекций, допускающих параллельность Инициализация коллекции Перебор элементов коллекции без привязки к ее реализации Создание собственной коллекции Создание собственных итераторов для коллекции Изменение порядка элементов массива на обратный Изменение порядка элементов связного списка на обратный Извлечение уникальных элементов из коллекции Подсчет количества вхождений элемента Реализация очереди с приоритетами Создание префиксного дерева Глава 11. Файлы и сериализация Создание, чтение и запись файла Создание, чтение и запись текстового файла Создание, чтение и запись двоичного файла Удаление файла Комбинирование потоков данных (сжатие файла) Выяснение размера файла Получение информации, связанной с безопасностью Проверка существования файла и каталога Список дисков Список каталогов и файлов Обзор каталогов Поиск файла или каталога Манипуляции с путями к файлам Создание уникальных или временных имен для файлов Отслеживание изменений в файловой системе Получение пути к каталогам My Documents, My Pictures и т. д. Сериализация объектов Сериализация объектов с использованием атрибута Serializable Сериализация объектов путем реализации интерфейса ISerializable Сериализация в буфер в памяти Хранение данных приложения, имеющего ограниченные права Глава 12. Работа в сетях и во Всемирной паутине Определение IP-адреса по имени хоста Выяснение имени хоста и IP-адреса у данного компьютера "Пингование" компьютера Выяснение информации о сетевой карте Создание сервера и клиента на базе TCP/IP Отправка электронного письма по протоколу SMTP Загрузка содержимого веб-страницы по протоколу HTTP Асинхронная загрузка веб-содержимого Выгрузка файла по протоколу FTP Удаление тегов из HTML-кода Встраивание веб-браузера в приложение Прием RSS-ленты новостей Динамическое генерирование RSS-ленты новостей в IIS Взаимодействие между процессами на одном компьютере (WCF) Определение интерфейса службы Создание сервера Создание клиента Взаимодействие между двумя компьютерами в одной сети (WCF) Взаимодействие через Интернет (WCF) Обнаружение служб на этапе выполнения (WCF) Реализация хоста, который можно обнаружить Реализация динамического клиента Глава 13. Базы данных Создание базы данных в Visual Studio Соединение с базой и чтение данных Соединение с SQL Server Соединение с MySQL Написание программы, не зависящей от сервера базы данных Добавление данных в таблицу Удаление данных из таблицы Выполнение хранимой процедуры Транзакции Связывание данных с элементом управления при помощи класса DataSet Связывание данных с элементом управления в приложении Windows Forms Обновление базы данных из объекта DataSet Связывание данных с элементом управления в WPF Связывание данных с элементом управления в приложении ASP.NET Выяснение доступности соединения с базой данных Автоматическое отображение данных на объекты с помощью платформы Entity Framework Получение списка всех сущностей Создание новой сущности Поиск сущности Удаление сущности Глава 14. Язык XML Сериализация объекта в XML и десериализация его Управление сериализацией объекта Создание XML-документа "с нуля" Построение XML-документа с помощью класса XmlDocument Создание XML-кода с помощью класса XmlWriter Чтение XML-файла Чтение XML-файла с помощью класса XmlDocument Чтение XML-файла с помощью класса XmlTextReader Проверка корректности XML-документа Выдача запроса к XML-документу с помощью XPath Преобразование информации из базы данных в XML-документ Преобразование XML-документа в HTML-документ Глава 14 Язык XML Часть III. Взаимодействие с пользователем Глава 15. Делегаты, события и анонимные методы Динамический вызов метода Вызов нескольких методов с помощью одного делегата Подписка на событие Прекращение подписки на событие Публикация события Гарантия обновления пользовательского интерфейса в потоке пользовательского интерфейса WinForms WPF Присваивание анонимного метода делегату Использование анонимных методов в качестве простых обработчиков событий Использование синтаксиса лямбда-выражений для анонимных методов Использование преимуществ контравариантности Глава 16. Технология Windows Forms Создание модальных и немодальных форм Добавление строки меню Динамический перевод пунктов меню в неактивное состояние Добавление строки состояния Добавление панели инструментов Создание интерфейса, включающего в себя подокно Наследование формы Создание собственного элемента управления Применение таймера Использование общих и пользовательских настроек конфигурации Эффективное использование элемента ListView в виртуальном режиме Наклон колесика мыши для горизонтальной прокрутки Реализация Cut и Paste Реализация Cut и Paste для одного типа данных Реализация Cut и Paste для текста и изображений одновременно Выяснение форматов элементов, находящихся в буфере обмена Реализация Cut и Paste для нестандартных объектов Автоматический сброс индикатора ожидания Глава 17. Графика с применением Windows Forms и GDI+ Определение цвета Использование системного элемента управления для выбора цвета Преобразование цветов между системами RGB и HSV Преобразование из RGB в HSV Преобразование из HSV в RGB Рисование фигур Создание перьев Создание кистей с произвольными характеристиками Преобразования Перенос Поворот Перенос с поворотом Масштабирование Сдвиг Рисование текста Расположение текста по диагонали Вывод изображений Вывод прозрачных изображений Рисование в буфере Прямое обращение к пикселам для повышения эффективности Рисование со сглаживанием Перерисовка без мерцания Изменение размеров изображения Создание миниатюры Захват многоэкранного изображения Вычисление расстояния от указателя мыши до заданной точки Выяснение местоположения точки относительно прямоугольника Выяснение местоположения точки относительно круга Выяснение местоположения точки относительно эллипса Выяснение факта пересечения двух прямоугольников Печать и предварительный просмотр Глава 18. WPF Открытие окна Выбор компоновки интерфейса Добавление строки меню Добавление строки состояния Добавление панели инструментов Использование стандартных команд Использование нестандартных команд Перевод команд из неактивного состояния в активное и обратно Сворачивание и разворачивание группы элементов управления Реагирование на события Отделение внешнего вида от функциональности Применение триггеров для смены стилей на этапе выполнения Связывание свойств элемента управления с другим объектом Форматирование значений при связывании данных Преобразование типов значений при связывании данных Связывание с коллекцией Контроль за представлением связанных данных Определение внешнего вида элементов управления с помощью шаблонов Анимирование свойств элементов Отображение трехмерной графики Размещение видео на поверхности трехмерной фигуры Размещение интерактивных элементов управления на поверхности трехмерной фигуры Применение WPF в приложении WinForms Применение WinForms в WPF-приложении Глава 19. ASP.NET Просмотр отладочной и трассировочной информации Включение трассировки для конкретной страницы Включение трассировки для всех страниц Запись ваших собственных трассировочных сообщений в журнал Выяснение возможностей браузера Перенаправление на другую страницу Аутентификация с помощью формы для входа пользователя в систему Использование главных страниц для достижения единства оформления Добавление меню Связывание данных с элементом управления GridView Создание пользовательского элемента управления Создание гибкого пользовательского интерфейса с элементами Web Parts Создание простой страницы с использованием технологии AJAX Проверка допустимости данных Поддержание состояния приложения Поддержание состояния пользовательского интерфейса Поддержание пользовательских данных на протяжении сеанса Сохранение состояния сеанса Сохранение состояния в процессе Сохранение состояния на сервере состояний Сохранение состояния в базе данных SQL Server Восстановление состояния сеанса с помощью cookie Использование надстройки MVC над ASP.NET Создание приложения Создание модели Создание контроллера Создание представления Создание новых записей Редактирование записей Глава 20. Silverlight Создание проекта Silverlight Воспроизведение видео Создание индикатора загрузки и воспроизведения Реакция пользовательского интерфейса на события таймера Создание трехмерной перспективы для содержимого страницы Выполнение приложения за пределами браузера Захват изображения с веб-камеры Распечатка документа Часть IV. Более сложные элементы языка С# Глава 21. LINQ Запрос к коллекции объектов Упорядочивание результатов Фильтрование коллекции Получение коллекции на основе отдельных полей объектов (проекция) Выполнение объединения Запрос к XML-документу Создание XML-документа Запрос к Entity Framework Использование наследования сущностей в LINQ-запросах Запрос к веб-службе (LINQ to Bing) Ускорение запросов с помощью PLINQ (Parallel LINQ) Глава 22. Управление памятью Измерение объема памяти, нужного приложению Получение от операционной системы сведений о потреблении памяти программой Освобождение неуправляемых ресурсов с помощью финализации Освобождение управляемых ресурсов с помощью шаблона Dispose Использование шаблона Dispose совместно с финализацией Принудительная сборка мусора Создание кэша, позволяющего выполнять сборку мусора Работа с указателями Ускорение доступа к массивам Предотвращение перемещения объектов в памяти Выделение неуправляемой памяти Глава 23. Потоки выполнения. Асинхронное и параллельное программирование Распределение работы между несколькими процессорами Параллельная обработка данных Параллельное выполнение заданий Использование структур данных в разных потоках выполнения Асинхронный вызов метода Работа с пулом потоков выполнения Создание потока выполнения Обмен данными с потоком выполнения Защита данных, используемых в нескольких потоках выполнения Попытка получить блокировку Применение методов класса Interlocked вместо блокировок Защита данных в нескольких процессах Ограничение количества экземпляров приложения до одного Ограничение количества потоков выполнения, обращающихся к ресурсу Отправка сигналов потокам выполнения с помощью механизма событий Использование многопотокового таймера Использование блокировки чтения/записи Применение асинхронной модели программирования Глава 24. Применение отражения и создание добавляемых модулей Перечисление типов в сборке Добавление нестандартного атрибута Динамическое создание экземпляра класса Вызов метода динамически созданного экземпляра класса Реализация архитектуры с добавляемыми модулями Создание совместно используемой сборки Создание сборки с добавляемым модулем Поиск и загрузка добавлямых модулей Глава 25. Шаблоны приложений и полезные советы по проектированию Применение секундомера для профилирования кода Пометка устаревшего кода Объединение нескольких событий в одно Реализация шаблона с наблюдателем (подписчиком) Использование брокера событий Запоминание местоположения на экране Реализация отмены с помощью командных объектов Определение интерфейса команды и буфера изменений Определение функциональности команд Применение модели Model-View-ViewModel в технологии WPF Определение модели Определение модели представления Определение представления Реализация команд в модели представления Локализация Локализация приложения Windows Forms Локализация приложения ASP.NET Локализация WPF-приложения Локализация с помощью XAML Локализация с помощью файлов ресурсов Локализация Silverlight-приложения Развертывание приложений с использованием ClickOnce Глава 26. Взаимодействие с операционной системой и аппаратной частью Получение информации об операционной системе, пакете обновления и версии CLR Получение информации о ЦПУ и других аппаратных средствах Вызов UAC для запрашивания прав администратора Запись в журнал событий Чтение информации из журнала событий Обращение к Реестру Управление службами Windows Создание службы Windows Вызов низкоуровневых функций Windows с помощью P/Invoke Вызов библиотечных функций, написанных на языке С, из кода на языке С# Работа с файлами, отображенными в память Обеспечение работы приложения в 32-битовом и 64-битовом окружении Реагирование на изменение системной конфигурации Использование некоторых возможностей Windows 7 Стандартные диалоговые окна для работы с файлами Обращение к библиотекам Windows 7 Получение информации о режиме питания Глава 27. Полезные мелочи Создание непрямоугольного окна Приложение Windows Forms Приложение WPF Создание информационной пиктограммы Создание хранителя экрана в WPF Диалоговое окно с опциями Окно хранителя экрана Объединение всех составляющих в одно приложение Вывод заставки Приложение Windows Forms Приложение WPF Воспроизведение звукового файла Перетасовка карт Приложение. Необходимые инструменты Утилита Reflector Среда NUnit Программа NDepend Программа FXCop Виртуальная машина Утилиты Process Explorer и Process Monitor Программа RegexBuddy Приложение LINQPad Поиск инструментальных средств Предметный указатель
Similar books
С# 4.0 на примерах
2011 · DJVU
Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique
2025 · PDF
Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная
2022 · PDF
Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание
2021 · PDF
Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)
2022 · PDF
Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)
2023 · PDF
Управление объектами интеллектуальной собственности. Искусство изобретать: учебник для обучающихся по направлениям подготовки 23.00.00 , направлениям подготовки 23.03.01 "Технология транспортных процессов", уровень образования-"бакалавриат", 23.03.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования-"бакалавриат", 23.04.01 "Технология транспортных процессов", уровень образования- "магистратура", 23.04.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования- "магистратура"
2022 · PDF
Философия. Учебно-методический комплекс дисциплины по направлениям подготовки: 51.03.03 (071800.62) «Социально-культурная деятельность», профили подготовки: «Социально-культурные технологии в индустрии досуга», «Менеджмент социально-культурной деятельности», «Менеджмент детско-юношеского досуга», «Постановка и продюсирование культурно-досуговых программ», «Социально-культурная анимация и рекреация»; 38.03.02 (080200.62) «Менеджмент», профили подготовки: «Управление человеческими ресурсами», «Управление малым бизнесом», квалификации (степень) выпускника – «бакалавр»
2014 · PDF