1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200), страница 2
Текст из файла (страница 2)
Обработка исключительных ситуацийКласс System.ExceptionОсновы обработки исключенийИспользование try- и catch-блоковПример обработки исключенияВторой пример исключенияПоследствия возникновения неперехватываемых исключенийВозможность красиво выходить из ошибочных ситуацийИспользование нескольких catch-инструкцийПерехват всех исключенийВложение try-блоковГенерирование исключений вручнуюПовторное генерирование исключенийИспользование блока finallyИсключения “под микроскопом”Наиболее употребительные исключенияНаследование классов исключенийПерехват исключений производных классовИспользование ключевых слов checked и uncheckedГлава 14. Использование средств ввода-выводаОрганизация C#-системы ввода-выводаБайтовые и символьные потокиВстроенные потокиКлассы потоковКласс StreamБайтовые классы потоковСимвольные классы потоковДвоичные потокиКонсольный ввод-вывод данныхСчитывание данных из консольного входного потокаЗапись данных в консольный выходной потокКласс FileStream и файловый ввод-вывод на побайтовой основе10319320321325327328330331331332333334334335340343345347347347349350350351351353354356357358358360360362363365367370372375376376376377377378378380380380382383СодержаниеКак открыть и закрыть файлСчитывание байтов из объекта класса FileStreamЗапись данных в файлИспользование класса FileStream для копирования файлаФайловый ввод-вывод с ориентацией на символыИспользование класса StreamWriterИспользование класса Stream ReaderПеренаправление стандартных потоковСчитывание и запись двоичных данныхКласс BinaryWriterКласс BinaryReaderДемонстрация использования двоичного ввода-выводаФайлы с произвольным доступомИспользование класса MemoryStreamИспользование классов StringReader и StringWriterПреобразование числовых строк во внутреннее представлениеГлава 15.
Делегаты и событияДелегатыМногоадресная передачаКласс System. DelegateНазначение делегатовСобытияПример события для многоадресной передачиСравнение методов экземпляров классов со статическими методами,используемыми в качестве обработчиков событийИспользование событийных средств доступаСмешанные средства обработки событийРекомендации по обработке событий в среде .NET FrameworkИспользование встроенного делегата EventHandlerУчебный проект: использование событийГлава 16. Пространства имен, препроцессор и компоновочные файлыПространства именОбъявление пространства именПространства имен предотвращают конфликты по совпадению именКлючевое слово usingВторая форма использования директивы usingАддитивность пространств именПространства имен могут быть вложеннымиПространство имен по умолчаниюПрепроцессор#define#if и #endif#else и #elif#undef#error#warning#line#region и #endregionКомпоновочные файлы и модификатор доступа internalМодификатор доступа internalГлава 17.
Динамическая идентификация типов, отражение и атрибутыДинамическая идентификация типовПроверка типа с помощью ключевого слова isСодержание38338538638738938939139239439439539640040240440540941041341541641641841942142542642842943143243243443643743844044144144244244444544644644644744744744945045011Использование оператора asИспользование оператора typeofОтражениеЯдро подсистемы отображения: класс System.TypeИспользование отраженияПолучение информации о методахВторой формат вызова метода GetMethods()Вызов методов с помощью средства отраженияПолучение конструкторов типаПолучение типов из компоновочных файловПолная автоматизация получения информации о типахАтрибутыОсновы применения атрибутовСоздание атрибутаПрисоединение атрибутаПолучение атрибутов объектаСравнение позиционных и именованных параметровИспользование встроенных атрибутовАтрибут Attribute UsageАтрибут ConditionalАтрибут ObsoleteГлава 18.
Опасный код, указатели и другие темыОпасный кодОсновы использования указателейОбъявление указателяОператоры “*” и “&”Использование ключевого слова unsafeИспользование модификатора fixedДоступ к членам структур с помощью указателейАрифметические операции над указателямиСравнение указателейУказатели и массивыИндексация указателяУказатели и строкиИспользование многоуровневой непрямой адресацииМассивы указателейКлючевые слова смешанного типаsizeoflockreadonlystackallocИнструкция usingМодификаторы const и volatileЧасть II.
Библиотека C#Глава 19. Пространство имен SystemЧлены пространства имен SystemКласс MathСтруктуры типов значенийСтруктуры целочисленных типовСтруктуры типов данных с плавающей точкой12451453454454455455458459462466471474474474475475477480480481482484485486486487487488489489491492492494494495496496496496497498499501502503504509510511СодержаниеСтруктура DecimalСтруктура CharСтруктура BooleanКласс ArrayСортировка массивов и поиск заданного элементаРеверсирование массиваКопирование массивовКласс BitConverterГенерирование случайных чисел с помощью класса RandomУправление памятью и класс GCКласс ObjectИнтерфейс IComparableИнтерфейс IConvertibleИнтерфейс ICloneableИнтерфейсы IFormatProvider и IFormattableГлава 20. Строки и форматированиеСтроки в C#Класс StringКонструкторы класса StringПоле, индексатор и свойство класса StringОператоры класса StringМетоды класса StringСравнение строкКонкатенация строкПоиск строкиРазбиение и сборка строкУдаление символов и дополнение ими строкВставка, удаление и заменаИзменение “регистра”Использование метода Substring()ФорматированиеОбщее представление о форматированииСпецификаторы формата для числовых данныхИспользование методов String.Format() и ToString() для форматированияданныхИспользование метода String.Format() для форматирования значенийИспользование метода ToString() для форматирования данныхСоздание пользовательского числового форматаИспользование символов-заполнителейФорматирование даты и времениСоздание пользовательского формата даты и времениФорматирование перечисленийГлава 21.
Многопоточное программированиеОсновы многопоточностиКласс ThreadСоздание потокаА если немного усовершенствоватьСоздание нескольких потоковКак определить, завершено ли выполнение потокаСвойство IsBackgroundПриоритеты потоковСинхронизацияАльтернативное решениеСодержание51451852352352452652753253453653753753853854054154254254354354454454454754955255555655755855855956056156256456556556957157357557657757758058158358558658859213Блокирование статического методаКласс Monitor и инструкция lockВзаимодействие потоков с помощью методов Wait(), Pulse() и PulseAll()Пример использования методов Wait() и Pulse()ВзаимоблокировкаИспользование атрибута MethodImplAttributeПриостановка, возобновление и завершение выполнения потоковАльтернативный формат использования метода Abort()Отмена действия метода Abort()Определение состояния потокаИспользование основного потокаСовет по созданию многопоточных программЗапуск отдельной задачиГлава 22.
Работа с коллекциямиОбзор коллекцийИнтерфейсы коллекцийИнтерфейс ICollectionИнтерфейс IListИнтерфейс IDictionaryИнтерфейсы IEnumerable, IEnumerator и IDictionaryEnumeratorИнтерфейс IComparerИнтерфейс IHashCodeProviderСтруктура DictionaryEntryКлассы коллекций общего назначенияКласс ArrayListСортировка ArrayList-массивов и выполнение поискаСоздание обычного массива из динамическогоКласс HashtableКласс SortedListКласс StackКласс QueueХранение битов с помощью класса BitArrayСпециализированные коллекцииДоступ к коллекциям с помощью нумератораИспользование нумератораИспользование интерфейса IDictionaryEnumeratorХранение в коллекциях классов, определенных пользователемРеализация интерфейса IComparableИспользование интерфейса IComparerРезюмеГлава 23.
Сетевые возможности и использование InternetЧлены пространства имен System.NetУниверсальные идентификаторы ресурсовОсновы Internet-доступаКласс WebRequestКласс WebResponseКлассы HttpWebRequest и HttpWebResponseПервый простой примерОбработка сетевых ошибокИсключения, генерируемые методом Create()Исключения, генерируемые методом GetResponse()14593594594595598599601603604606606608608610611612612613614615615616616616617621622623625629631633636636637638639641642644645646647647648650650650653653654СодержаниеИсключения, генерируемые методом GetResponseStream()Обработка исключенийКласс URIДоступ к дополнительной HTTP-информацииДоступ к заголовкуДоступ к cookie-даннымИспользование свойства LastModifiedУчебный проект: программа MiniCrawlerИспользование класса WebClientЧасть III.
Применение языка C#Глава 24. Создание компонентовЧто представляет собой компонентКомпонентная модельЧто представляет собой C#-компонентКонтейнеры и узлыСравнение C#- и COM-компонентовИнтерфейс IComponentКласс ComponentПростой компонентКомпиляция компонента CipherLibКлиент, использующий компонент CipherCompПереопределение метода Dispose()Демонстрация использования метода Dispose(bool)Защита освобожденного компонента от использованияИспользование инструкции usingКонтейнерыИспользование контейнераКомпоненты — это будущее программированияГлава 25.
Создание Windows-приложенийКраткий экскурс в историю Windows-программированияДва способа создания Windows-приложений, основанных на примененииоконКак Windows взаимодействует с пользователемWindows-формыКласс FormСхематичная Windows-программа, основанная на применении оконКомпиляция первой Windows-программыКомпиляция из командной строкиКомпиляция в интегрированной среде разработки (IDE)Создание кнопкиНемного теорииКак поместить кнопку на формуПростой пример с кнопкойОбработка сообщенийАльтернативная реализацияИспользование окна сообщенийСоздание менюЧто дальшеГлава 26. Синтаксический анализ методом рекурсивного спускаВыраженияАнализ выражений: постановка задачиСодержание65465465665765865966066166566967067167167267267267367367467567667767868368468568668868969069169169269269269469469569569669669669769970070270670770870915Анализ выраженияРазбор выраженияПростой анализатор выраженийОсмысление механизма анализаДобавление в анализатор переменныхСинтаксический контроль в рекурсивном нисходящем анализатореЧто еще можно сделатьЧасть IV.
ПриложенияПриложение А. Краткий обзор языка комментариев XMLТеги языка комментариев XMLКомпиляция XML-документаПример XML-документаПриложение Б. C# и робототехникаПредметный указатель16710711713719720728728731732733734734737740СодержаниеОб автореГерберт Шилдт (Herbert Schildt) — всемирно известный автор книг попрограммированию и крупный специалист в области таких языков, как С, C++, Java и C#.Продано свыше 3 миллионов экземпляров его книг. Они переведены на множество языков.Шилдт — автор таких бестселлеров, как Полный справочник по С, Полный справочник поC++, C++: A Beginner's Guide, C++ from the Ground Up, Java 2: A Beginner's Guide иWindows 2000 Programming from the Ground Up.