Главная » Просмотр файлов » 1629295407-c61bfe4caba98380ea3e7cdae6295416

1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200), страница 91

Файл №846200 1629295407-c61bfe4caba98380ea3e7cdae6295416 (Шилдт Герберт - Полный справочник по C#) 91 страница1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200) страница 912021-08-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 91)

Опасный код, указатели и другие темы497ptrs[0] = 1;ptrs[1] = 2;ptrs[2] = 3;}}for(int i=0; i < 3; i++)Console.WriteLine(ptrs[i]);Результаты выполнения этой программы таковы:123Инструкция usingКлючевое слово using, применение которого в качестве директивы описано выше,имеет и второй вариант использования, а именно в качестве инструкции using. В этомслучае возможны следующие две формы:using(obj) {// Использование объекта obj.}using(type obj = инициализатор) {// Использование объекта obj.}Здесь элемент obj представляет объект, используемый внутри блока using.

Впервой форме этот объект объявляется вне using-инструкиии, а во второй — внутри, Призавершении блока для объекта obj вызывается метод Dispose() (определенный винтерфейсе System.IDisposable). Инструкция using применяется только к объектам,которые реализованы в интерфейсе System.IDisposable.Рассмотрим пример использования каждой формы инструкция using:// Демонстрация использования инструкции using.using System;using System.IO;class UsingDemo {public static void Main() {StreamReader sr = new StreamReader("test.txt");// Используем объект внутри инструкции using.using(sr) {Console.WriteLine(sr.ReadLine() );sr.Close();}}}498// Создаем StreamReader-объект внутри инструкции using.using(StreamReader sr2 = new StreamReader("test.txt")) {Console.WriteLine(sr2.ReadLine());sr2.Close();}Часть I.

Язык C#Класс StreamReader реализует интерфейс IDisposable (через свой базовыйкласс TextReader). Следовательно, его можно использовать в using-инструкции.(Описание интерфейса IDisposable см. в главе 24.)Модификаторы const и volatileМодификатор const используется для объявления полей или локальных переменных,которые не должны изменяться. Этим переменным необходимо присвоить начальныезначения при объявлении. Таким образом, const-переменная является по сути константой.Например, при выполнении инструкцииconst int i = 10;создается const-переменная i, которая имеет значение 10.Модификатор volatile сообщает компилятору о том, что значениесоответствующего поля может быть изменено в программе неявным образом.

Например,поле, содержащее текущее значение системного времени, может обновляться операционнойсистемой автоматически. В этой ситуации содержимое такого поля изменяется без явноговыполнения инструкции присваивания. Причина внешнего изменения поля может бытьочень важной. Дело в том, что C#-компилятору разрешается оптимизировать определенныевыражения автоматически в предположении, что содержимое поля остается неизменным,если оно не находится в левой части инструкции присваивания. Но если некоторыефакторы, не относящиеся к текущему коду (например, связанные с обработкой второгопотока выполнения), изменят значение этого поля, такое предположение окажетсяневерным.

Использование модификатора volatile позволяет сообщить компилятору отом, что он должен получать значение этого поля при каждом обращении к нему.Глава 18. Опасный код, указатели и другие темы499Полныйсправочник поЧасть IIБиблиотека C#Часть II посвящена описанию библиотеки C#. Какупоминалось в части I, используемая в C# библиотекаклассов является, по сути, библиотекой .NETFramework. Таким образом, материал этого разделаприменим не только к языку C#, но и в целом к среде.NET Framework. Библиотека C# организована сиспользованием пространств имен.

Для работы с какойлибо ее частью с помощью директивы usingимпортируется соответствующее пространство имен.Конечно, можно также указывать полное имя элемента,т.е. сопровождать его названием пространства имен, нолегче импортировать (так чаще всего и поступают)само пространство имен.Полныйсправочник поГлава 19Пространство имен SystemЭта глава посвящена пространству имен System, которое занимает наивысшийуровень в библиотеке C#. Оно содержит классы, структуры, интерфейсы иперечисления, которые наиболее часто употребляются в C#-программах или считаютсяважной составляющей среды .NET Framework. Таким образом, пространство имен Systemопределяет ядро библиотеки C#.Пространство имен System также содержит множество вложенных пространствимен, предназначенных для поддержки таких подсистем, как System.Net.

Некоторые изних описаны ниже в этой книге. Однако в этой главе рассматриваются только члены самогопространства имен System.Члены пространства имен SystemПомимо большого количества классов исключений, пространство имен System содержит следующие классы:ActivatorArrayAttributeUsageAttributeCharEnumeratorContextBoundObjectDBNullEnvironmentFlagsAttributeLocalDataStoreSlotMTAThreadAttributeObjectParamArrayAttributeSerializableAttributeThreadStaticAttributeUnhandledExceptionEventArgsValueTypeAppDomainAssemblyLoadEventArgsBitConverterCLSCompliantAttributeContextStaticAttributeDelegateEventArgsGCMarshalByRefObjectMulticastDelegateObsoleteAttributeRandomSTAThreadAttributeTimeZoneUriVersionAppDomainSetupAttributeBufferConsoleConvertEnumExceptionLoaderOptimizationAttributeMathNonSerializedAttributeOperatingSystemResolveEventArgsStringTypeOriBuilderWeakReferenceВ пространстве имен System определены такие структурыArgIteratorCharDoubleInt32RuntimeArgumentHandleRuntimeTypeHandleTimeSpanUInt32VoidBooleanDateTimeGuidInt64RuntimeFieldHandleSByteTypedReferenceUInt64ByteDecimalInt16IntPtrRuntimeMethodHandleSingleUInt16UintPtrВ пространстве имен System определены следующие интерфейсы:IAppDomainSetupIComparableIDisposableIServiceProviderIAsyncResultIConvertibleIFormatProviderГлава 19.

Пространство имен SystemICloneableICustomFormatterIFormattable503В пространстве имен System определены такие делегаты:AssemblyLoadEventHandlerEventHandlerAsyncCallbackResolveEventHandlerCrossAppDomainDelegateUnhandledExceptionEventHandlerВ пространстве имен System определены следующие перечисления:AttributeTargetsLoaderOptimizationUriHostNameTypeDayOfWeekPlatformIDUriPartialEnvironment.SpecialFolderTypeCodeКак видно по приведенным выше таблицам, пространство имен System отличаетсядовольно большим объемом, и все его составляющие невозможно детально рассмотреть водной главе.

Более того, хотя некоторые члены System в общем случае применимы к среде.NET Framework, но C#-программистами они обычно не используются. Следует такжеотметить, что некоторые классы пространства имен System (например, Type, Exceptionи Attribute) рассмотрены в части I или в других разделах настоящей книги.

А посколькукласс System. String, в котором определяется C#-тип string, представляет собой оченьбольшую и важную тему, его описание приводится в главе 20 (как тесно связанное с темойформатирования). Поэтому в настоящей главе описаны только те члены пространства именSystem, которые пользуются повышенным вниманием у C#-программистов и неупоминаются в других разделах книги.Класс MathВ классе Math определены такие стандартные математические операции, какизвлечение квадратного корня, вычисление синуса, косинуса и логарифмов.

Методы,определенные в классе Math, перечислены в табл. 19.1. Все углы задаются в радианах.Обратите внимание на то, что все методы, определенные в классе Math, являются staticметодами. Поэтому для их использования не нужно создавать объект класса Math, а значит,нет необходимости и в конструкторах класса Math.В классе Math также определены следующие два поля:public const double Epublic const double PIгде E — значение основания натурального логарифма, известное как е, a PI —значение иррационального числа π.Math является sealed-классом, т.е. он не может иметь производных классов.Таблица 19.1. Методы, определенные в классе MathМетодОписаниеpublic static double Abs(double v)public static float Abs (float v)public static decimal Abs(decimal v)public static int Abs(int v)public static short Abs(short v)public static long Abs(long v)public static sbyte Abs(sbyte v)Возвращает абсолютную величину параметра v504Возвращает абсолютную величину параметра vВозвращает абсолютную величину параметра vВозвращает абсолютную величину параметра vВозвращает абсолютную величину параметра vВозвращает абсолютную величину параметра vВозвращает абсолютную величину параметра vЧасть II.

Библиотека C#Продолжение табл. 19.1.МетодОписаниеpublic staticdouble v)public staticdouble v)public staticdouble v)public staticdouble y,double x)public staticdouble v)double Acos(public staticdouble v)public staticdouble v)public staticdouble v)public staticdouble v)double Atan(Возвращает арккосинус параметра v.

Значение vдолжно находиться в диапазоне между -1 и 1Возвращает арксинус параметра v. Значение vдолжно находиться в диапазоне между -1 и 1Возвращает арктангенс параметра vdouble Atan2(Возвращает арктангенс частного y/xdouble Ceiling(double Cos(Возвращает наименьшее целое (представленное ввиде значения с плавающей точкой), которое неменьше параметра v. Например, при v, равном1.02, метод Ceiling() возвратит 2.0. А при v,равном -1.02, метод Ceiling() возвратит -1Возвращает косинус параметра vdouble Cosh(Возвращает гиперболический косинус параметра vdouble Exp(Возвращает основание натурального логарифма е,возведенное в степень vВозвращает наибольшее целое (представленное ввиде значения с плавающей точкой), которое небольше параметра v. Например, при v, равном1.02, метод Floor() возвратит 1.0.

А при v,равном -1.02, метод Floor() возвратит -2Возвращает остаток от деленияdividend/divisordouble Asin(double Floor(public static double IEEERemainder(double dividend,double divisor)public static double Log(double v)public static double Log(double v,double base)public static double Log10(double v)public static double Max(double v1,double v2)public static float Max(float v1,float v2)public static decimal Max(decimal v1,decimal v2)public static int Max(int v1,int v2)public static short Max(short v1,short v2)public static long Max(long v1,long v2)Глава 19.

Характеристики

Тип файла
PDF-файл
Размер
5,05 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6420
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее