В книге содержатся советы, алгоритмы и готовые примеры программ из различных областей: шифрование, файловые и сетевые операции, XML, ASP.NET, взаимодействие с MS Office и Internet Explorer и др. Описаны синтаксис языка С#, вопросы отладки и профилирования приложений, а также проблемы, возникающие при переходе с других языков программирования на язык С#. Рассматриваются примеры наиболее часто используемых регулярных выражений. Отдельная глава посвящена работе с аппаратурой.
Название: C#. Сборник рецептов + CD Автор: Агуров П. В. Издательство: БХВ-Петербург Год: 2007 Страниц: 429 Формат: DJVU Размер: 17,7 МБ ISBN: 978-5-94157-969-1 Качество: Отличное
Содержание:
Введение Для кого эта книга О программном коде Краткое описание, глав Благодарности Обратная связь Глава 1. Технология .NET 1.1. На каких платформах запускается .NET? 1.2. Какие компиляторы существуют для .NET? 1.3. Можно ли запустить программу без .NET Framework? 1.4. Можно ли вызывать функции Win32 из .NET-программ? 1.5. Проблемы установки Framework 1.6. Ускорение загрузки модулей 1.7. Одновременная установка Visual Studio 2003 и 2005 1.8. Не запускается отладчике Visual Studio 1.8.1. Ошибка безопасности 1.8.2. Ошибка конфигурирования 1.8.3. Ошибка 401 1.9. Не запускается отладчик в Visual Studio 2005 Глава 2. Вопросы синтаксиса C# 2.1. Как выглядит простая. Сопрограмма? 2.2. Оператор switch можно использовать для строк 2.3. Выходные параметры без инициализации 2.4. Константы и поля "только для чтения" 2.5. Как определить ссылочный тип? 2.6. Псевдонимы 2.7. Что означает символ @ в начале строки? 2.8. Что означает символ @ перед идентификатором? 2.9. Какая разница между оператором is и методом IsSubclassOf? 2.10. Какая разница между оператором as и прямым приведением типа? 2.11. Какая разница между string и System.String'? 2.12.Какая» разница между override и new? 2.13. Какаяразница между = = и Equals? 2.14. Перекрытие операторов 2.15. Как создать наследника, если конструктор класса имеет параметры? 2.16. Что такое делегат? 2.17. В чем разница между полем и свойством? 2.18. Свойство с индексатором 2.19. Можно ли сделать свойство с разным уровнем доступа для get и set? 2.20. Как вызвать методы, с одинаковыми именами из интерфейсов? 2.21. В чем разница byte и sbyte? 2.22. Как сгенерировать документацию по коду? 2.23. Как инициализировать поля класса до вызова конструктора? 2.24. Использование переменного числа параметров 2.25. Указатели 2.26. Слабые ссылки 2.27. Файлы ресурсов Глава 3. Для программистов C++ и Delphi 3.1. Как удалить объекты, созданные с помощью оператора new? 3.2. Как создать экземпляр класса на стеке? 3.3. Почему не вызывается деструктор? 3.4. Почему в операторе if больше нельзя использовать условия типа int? 3.5. Как создать массив констант? 3.6. Как инициализировать массив структур? 3.7. Оператор switch работает не так, как в C++ 3.8. Есть ли в C# макросы и препроцессор? 3.9. Как описать битовые поля? Глава 4. Отражение и связанные с ним вопросы 4.1. Создание объекта по имени типа 4.2. Вызов метода по имени 4.3. Загрузка и создание класса из другой сборки 4.4. Получение списка типов из сборки 4.5. Получение всех свойств класса 4.6. Установка значения private-поля 4.7. Получение списка полей структуры 4.8. Получение полного имени сборки и ее свойств 4.9. Компиляция кода из программы 4.10. Перехват загрузки типов и модулей Глава 5. Отладка и условная компиляция 5.1. Условная компиляция в режиме отладки 5.2. Методы ASSERT и TRACE 5.3. Перенаправление вывода Trace 5.4. Почему дублируются строки в отладочной информации? 5.5. Трассировка исключения 5.6. Трассировка стека вызовов 5.7. Оценка времени выполнения кода 5.7.1. Измерение с помощью TickCount (наименьшая точность) 5.7.2. Измерение с помощью Ticks (средняя точность) 5.7.3. Измерение с помощью QueryPerformance (высокая точность) 5.8. Как включить полный режим отладки кода? 5.9. Отладочная информация для ASP.NET 5.10. Как отлаживать remoting-код? 5.11. Глобальная обработка исключений Глава 6. Командная строка, свойства программы, конфигурационные файлы 6.1. Параметры командной строки 6.2. Имя исполняемого файла 6.3. Установка свойства CompanyName 6.4. Конфигурационный файл 6.5. Где найти класс ConfigurationManager? 6.6. Нестандартный конфигурационный файл 6.7. Как заставить программу использовать только Framework 2.0? 6.8. Версия и информация о модуле 6.9. Как обновлять Assemblylnfo для всего проекта сразу? Глава 7. Преобразования 7.1. Преобразование числа в шестнадцатеричную строку 7.2. Преобразование строки в число 7.3. Преобразование строки с пробелами в число 7.4. Преобразование щестнадцатеричной строки в число 7.5. Преобразование двоичной строки в число 7.6. Преобразование числа в двоичную строку 7.7. Преобразование числа с плавающей точкой в строку 7.8. Преобразование строки в число с плавающей точкой 7.9. Перекодировка текста 7.10. Преобразование в Base64 и обратно 7.11. Преобразование из Winl251 в KOI8 и обратно 7.12. Преобразование цвета в строку и обратно 7.13. Преобразование цвета в HTML-формат 7.14. Преобразование цвета в целое число и обратно 7.15. Преобразование HTML-текста 7.16. Преобразование массива байтов в базовые типы и обратно Глава 8. Массивы, списки, таблицы, перечисления 8.1. Отображение всех элементов перечисления 8.2. Перевод перечисления в строковый вид и обратно 8.3. Проверка наличия элемента в перечислении 8.4. Одномерные массивы постоянного размера 8.4.1. Изменение размерности массива 8.4.2. Перебор всех элементов массива 8.4.3. Изменение порядка элементов на обратный 8.4.4.Поиск 8.4.5. Копирование элементов массива 8.4.6. Преобразование массива одного типа в массив другого типа 8.5. Многомерные массивы постоянного размера 8.6. Невыровненный массив 8.7. Свойства массивов 8.8. Методы, возвращающие массивы 8.9. Массивы переменного размера 8.10. Массив битов 8.11. Хранение таблицы "ключ/значение" 8.11.1. Добавление элементов 8.11.2. Отображение содержимого Hashtable 8.11.3. Порядок элементов Hashtable 8.11.4. Удаление элемента из Hashtable 8.11.5. Специальный Hashtable 8.12. Сортированный список 8.13. Очередь 8.14. Стек 8.15. Преобразование IList в Arraylist Глава 9. Шифрование, кодирование, сжатие, математика 9.1. Вычисление контрольной суммы строки 9.2. Шифрование строк 9.3. Контроль арифметических операций 9.4. Вычисление математических выражений Глава 10. Строковые и символьные операции 10.1. Проверка символов 10.2. Создание строки одинаковых символов 10.3. Проверка, является ли строка числом 10.4. Проверка» является ли строка допустимой датой 10.5. Разбиение строки по разделителям 10.6. Объединение строк через разделитель 10.7. Какие преимущества дает класс StringBuilder? 10.8. Как сравнить всё строки без учета регистра символов? 10.9. Прямая модификация содержимого строки 10.10. Специальные символы в строке Глава 11. Консольные программы 11.1. Вывод цветного текста 11.2. Задержка закрытия консольной программы 11.3. Перенаправление вывода консольной программы 11.4. Изменение заголовка консольной программы 11.5. Получение размера окна консольной программы Глава 12. Производительность 12.1. Не кэшируйте соединение с БД 12.2. Используйте StringBuilder 12.3. Используйте Length для проверки пустоты строки 12.4. Не используйте исключения, если это возможно 12.5. Используйте AddRange для добавления групп элементов 12.6. Создавайте Hashtabk uArrayList подходящего размера 12.7. Иногда выгоднее использовать невыровненный массив 12.8. Используйте DataReader для последовательного доступа к данным 12.9. Используйте хранимые процедуры Глава 13. Списки файлов, каталогов 13.1. Получение списка логических дисков 13.2. Получение списка сетевых дисков 13.3. Список каталогов 13.4. Список каталогов по маске 13.5. Список файлов 13.6. Список файлов по маске 13.7. Создание временного файла Глава 14. Файловые операции 14.1. Блокирование ошибки "Устройство не готово" 14.2. Получение списка файлов и каталогов 14.3. Диалог открытия папки 14.4. Основные операции с каталогами 14.5. Основные операции с файлами 14.6. Чтение и установка атрибутов файла 14.7. Создание и чтение бинарного файла 14.8. Создание текстового файла 14.9. Добавление в текстовый файл 14.10. Чтение и запись в файл строк на русском языке 14.11. Посимвольное чтение текстового файла 14.12. Построчное чтение текстового файла 14.13. Чтение файла полностью 14.14. Отслеживание изменений в файловой системе 14.15. Получение короткого имени файла из длинного и наоборот Глава 15. Сетевая информация и сетевые операции 15.1. Разбор URL на составляющие 15.2. Получение DNS-имени компьютера 15.3. Получение NetBios-имени компьютера 15.4. Получение имени хоста 15.5. Получение списка IP-адресов компьютера 15.6. Перечисление RАS-соединений 15.7. Отправка письма через SMTP 15.7.1. Отправка письма через SMTP с авторизацией 15.7.2. Отправка письма через Pickup-каталог 15.7.3. Задание кодировки сообщения 15.7.4. Отправка письма без использования System.Web.Mail 15.8. Получение списка сетевых дисков 15.9. Получение имени текущего пользователя 15.10. Программная имперсонация 15.11. Как получить список групп домена, в которые входит пользователь? 15.12. Получение файла из Интернета 15.13. Получение данных из Интернета 15.14. Получение Web-c границы 15.15. Использование прокси-сервера 15.16. Подключен ли компьютер к Интернету? 15-17. Как проверить, доступен ли компьютер в сети? 15.18. Как сделать ping? 15.19. Получение файла с FTP через WinInet-функции 15.20. Перечисление компьютеров в сети Глава 16. Рабочий стол и панель управления 16.1. Что этакое IWshRuntimeLibrary и Shell32? 16.2. Создание ярлыка 16.3. Как найти путь к папке автозапуска? 16.4. Регистрация меню запуска программы по расширению 16.5. Доступ к элементам панели управления 16.6. Как получить разрешение экрана? Глава 17. Потоки 17.1. Запуск и остановка потоков 17.2. Отмена остановки потока 17.3. Изолирование данных потока 17.4. Права потоков 17.5. Идентификаторы потоков 17.6. Пул потоков 17.7. Синхронизация потоков 17.8. Синхронизация потоков: "один пишет, многие читают" 17.9. Использование AutoResetEvent Глава 18. Процессы 18.1. Запуск внешних программ 18.2. Блокировка запуска второй копии программы 18.2.1. Вариант 1 18.2.2. Вариант 2 18.3. Информация о процессах 18.4. Определение всех процессов, использующих .NET 18.5. Перечисление всех оконных процессов 18.6. Запуск внешнего процесса и вывод результата на консоль (Windows NT) 18.7. Получение списка модулей, связанных с текущим процессом 18.8. Управление сервисами Глава 19. Разное 19.1. Перечисление всех принтеров системы 19.2. Установка принтера по умолчанию 19.3. Определение версий операционной системы 19.4. Получение текущей даты и времени 1.9.5. Установка Значения десятичного разделителя 19.6. Определение числа процессоров 19.7. Запись в системный журнал событий 19.8. Создание своего журнала событий 19.9. Как "отвязать'' программу от журнала событий 19.10. Перечисление доступных журналов событий 19.11. Звуковой сигнал 19.12. Генерация случайного числа 19.13. Принудительная сборка мусора 19.14. Получение пути к папке Framework 19.15. Проигрывание WAV-файла 19.16. Чтение реестра 19.17. Разрешение обращения к реестру 19.18. Сохранение объекта в реестре 19.19. Определение типа файла по расширению 19.20. Создание GUID 19.21. Блокировка компьютера 19.22. Как создать СОМ-объект по GUID? 19.23. Почему уничтожается remoting-объект? 19.24. Ошибка SerializationException: "BinaryFormatter Version incompatibility" при использовании .NET Remoting 19.25. Использование Speech API Глава 20. Регулярные выражения 20.1. Поиск совпадения 20.2. Поиск и получение совпавшего текста 20.3. Поиск с заменой 20.4. Разделение строки на слова 20.5. Разбор CSV-файла с учетом кавычек 20.6. Выделение макроимен 20.7. Изменение формата даты 20:8. Замена заголовка HTML-файла 20.9. Тестирование регулярных выражений 20.10. Примеры регулярных выражений 20.10.1. E-mail 20.10.2. Положительные десятичные числа 20.10.3. HTML-теги 20.10.4. НТМ1-теги с Java-привязкой 20.10.5. HTML-теги с атрибутами 20.10.6. Строки HTML-цветов 20.10.7. XML-теги (закрытые теги) 20.10.8. МАС-адрес 20.10.9. Имя макроса (формат @@имя@@) 20.10.10. Время Глава 21. XML 21.1. Загрузка содержимого XML из файла 21.1.1. Вариант 1 21.1.2. Вариант 2 21.2. Загрузка содержимого XML из URL 21.3. Загрузка содержимого XML из строки 21.4. Обход всех элементов XML-файла 21.5. Поэлементное чтение XML-файла 21.6. Чтение атрибутов 21.7. Чтение всех атрибутов 21.8. Запись атрибутов 21.9. Запись данных в XML-файл 21.10. Запись комментариев в XML-файл 21.11. Запись пространства имен и префиксов в XML-файл 21.12. Запись в XML-файл со специальным форматированием 21.13. Выборка из XML с помощью XPath 21.14. Вычисление выражений с помощью XPath 21.15. Вычисление min и max с помощью XPath 21.16. Создание XPathDocument из строки 21.17. XSL-трансформация 21.18. XSL-трансформация с параметрами 21.19. Проверка файла с помощью XSD 21.20. В чем разница между InnerXml, OuterXml и InnerTexf? 21.11. В чем разница между Load и LoadXml класса XmlDocumen? 21.22. Как добавить XmlNode из одного документа в другой? 21.23. Аналог простого ini-файла для хранения настроек 21.24. Работа с ini-файлами Глава 22. Windows Forms 22.1. Сворачивание программы в трей 22.2. Как сделать форму, не видимую в панели задач? 22.3. Как скрыть главную форму при старте приложения? 22.4. Получение всех цветов в системе 22.5. Получение положения курсора мыши 22.6. Как отлавливать все исключения? 22.7. Как сделать обработчик для сообщений Win32? 22.8. Есть ли в C# аналог ProcessMessages из Delphi? 22.9. Проблемы с ImageList при использовании EnableVisualStyles 22.10. Как поменять фон MDI-окон? 22.11.Определение разрешения экрана 22.12. Определение рабочей области экрана без системного трея 22.13. Использование системного буфера обмена 22.14. Обработка изменения системных настроек (например, разрешения экрана) 22.15. Показ HTML на форме 22.16. Отображение подсказки из справочных файлов 22.17. Рисование без обработки события Paint 22.18. Как нарисовать точку? 22.19. Проверка на попадание в область 22.20. Вывод на консоль из приложения Windows Form 22.21. Использование автозавершения в текстовом поле Глава 23. Базы данных 23.1.Что следует использовать для закрытия соединения - Close или Dispose? 23.2. Работа с файлами MS Access 23.3. Получение индекса объекта после добавления его в таблицу 23.4. Можно ли сделать GroupBy в DataSef? 23.5. Перечисление доступных SQL-серверов 23.6. Создание расширений MS SQL 2005 Глава 24. ASP.NET 24.1. Преобразование относительного пути в абсолютный 24.2. Управление буферизацией страниц 24.3. Управление кэшированием страниц 24.4. Перенаправление на другую страницу 24.5. Чем метод Server.Transfer отличается от метода Response.Redirecf? 24.6. Перенаправление на другую страницу при исключении 24.7. Использование cookies 24.8. Установка фокуса на элемент управления 24.9. Просмотр исходного кода страницы 24.10. Открытие страницы по кнопке в новом окне 24.11. Обработка исключений на странице 24.12. Глобальная обработка исключений ASP.NET 24.13. Ссылка на файл для скачивания 24.14. Управление созданием обработчиков IHttpHandler 24.15. Сложная привязка данных с помощью DataBinder 24.16. Что плохого в использовании сессий? 24.17. Настройка хранения сессий 24.18. Передача между страницами значений серверного элемента управления 24.19. Как перехватить загрузку и сохранение ViewState? 24.20. Создание общей сессии между ASP- и ASP.NET-приложениями 24.21. Что такое AJAX? 24.22. Получение серверных данных без AJAX 24.23. Получение HTML-кода элемента 24.24. Печать страницы на принтер по умолчанию 24.25. Проблемы несовместимости браузеров 24:26. Быстрая генерация табличного представления Web-формы 24.27. Почему Page_Load вызывается два раза? 24.28. Получение пути к странице Глава 25. MS Office, Internet Explorer 25.1. Получение данных со страницы MS Excel 25.2. Доступ к данным MS Excel 25.3. Работа с данными в буфере обмена в Excel формате CSV 25.4. Как обойти проблемы с использованием объектов MS Office? 25.5. Как напечатать документ MS Office? 25.6. Формирование документов MS Excel и MS Word из ASP.NET 25.7. Работа с MS Office через DDE 25.8. Работа с календарем MS Outlook 25.9. Использование Word Spell Checker для проверки орфографии 25.10. Журнал истории Internet Explorer Глава 26. WMI 26.1. Что такое WMI? 26.2. Работа с WMI на удаленной машине 26.3. Получение свойств видеоконтроллера и частоты обновления экрана 26.4. Получение информации о компьютере 26.5. Получение информации о производителе 26.6. Получение информации об операционной системе 26.7. Выполнение logoff, shutdown, reboot 26.8. Получение информации о рабочем столе 26.9. Определение типа компьютера 26.10. Определение физических параметров компьютера 26.11. Установка имени компьютера 26.12. Получение информации о процессорах 26.13. Получение списка общих файлов и каталогов 26.14. Создание и удаление общего каталога 26.15. Перечисление подключенных сетевых ресурсов 26.16. Получение информации о диске 26.16.1. Вариант 1 26.16.2. Вариант 2 26.17. Получение переменных окружения 26:18. Получение информации о загрузчике системы 26.19. Получение списка процессов 26.20. Получение списка запущенных и остановленных сервисов 26.21. Получение информации о разделах диска 26.22. Получение учетных записей локальной машины или домена 26.23. Получение списка групп локальной машины или домена Глава 27. Работа с аппаратурой 27.1. Импортирование функций Setup API 27.2. Перечисление устройств 27.3. Получение состояния устройства 27.4. Программное отключение устройства 27.5. Отслеживание изменения аппаратной конфигурации 27.6. Перечисление устройств ввода с помощью функций Direct X 27.7. Чтение скан-кодов клавиатуры с помощью функций Direct X 27.8. Чтение данных с последовательного порта 27.8.1. Вариант 1 27.8.2. Вариант 2 27.8.3. Вариант 3 Глава 28. Изображения 28.1. Изменение размеров картинки 28.2. Доступ к пикселам изображения 28.3. Создание негатива изображения 28.4. Изменение цветовой матрицы изображения 28.4.1. Преобразование цветов изображения 28.4.2. Создание серого изображения 28.4.3. Создание "затемненного" изображения 28.5. Рисование блокированной кнопки 28.6. Создание серого оттенка цвета 28.7. Загрузка изображения из буфера обмена 28.8. Замена цвета в изображении 28.9. Преобразование значков в изображение 28.10. Создание графической экранной копии формы 28.10.1. Вариант 1 28.10.2. Вариант 2 28.11. Создание графической копии экрана 28.12. Изменение размера изображения 28.13. Создание пиктограммы 28.14. Анимированный GIF 28.15. Градиентная Заливка 28.16. Исключение при установке прозрачного фона 28.17. Как нарисовать математическую формулу? Приложение 1. Интернет-ресурсы Приложение 2. Описание компакт-диска Список литературы Предметный указатель