Главная » Просмотр файлов » Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)

Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865), страница 61

Файл №1160865 Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)) 61 страницаНэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865) страница 612019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Встроенные числовые объекты используют стандартные строки числовых форматов или пользовательские форматные строки, определенные .()(ЕТ Ргзгпеиюг(г, описание которых можно найти в документации МВ(3(Ч, выполнив поиск "э(апбагб пшпег(с (оппаг Я1х(пяв". Стандартные форматные строки обычно имеют форму Ахх, где А — запрашиваемый формат, а хх — необязательный спецификатор точности. Примерами спецификаторов формата для чисел могут служить: "С" — для ВалЮты, "0" — для десятичных чисел, "Е" — для научной нотации.

"Р" — для нотации с фиксированной точкой и "Х" — для шестнадцатеричной нотации. Каждуяй тип поддерживает также спецификатор "Я" для обозначения общего вида, которым является спецификатор формата по умолчанию и который применяется, когда производится вызов ОЬЯесС.Тоягг1пд без указания форматной строки. Если эти форматные строки не отвечают существующим потребностям, можно даже применять одну иа пользовательских форматных строк, позволяющих описать то, что нужно, в более или менее наглядном виде.

Суть всего этого механизма заключается в том, что каждый тип интерпретирует и определяет форматную строку специфично для контекста его собственных нужд. Другими словами, Яуэсеи. ВопЬ1е вполне может трактовать спецификатор формата "Я" иначе, чем тип яуэсеж. 1пс32. Более того, пользовательский тип, скажем, еир1оуее, волен определять форматные строки по своему усмотрению. Например, форматная строка "ЯБМ" может порождать выходную строку, содержащую номер карточки социального страхования сотрудника. На заметку! Что даже еще удобнее — пользовательским типам можно позволить обрабатывать форматную строку 5 ВВЯ", создавая детализированную строку, которая представляет внутреннее состояние, для отправки в выходной журнал отладки. Рассмотрим небольшой пример кода.

в котором используются описанные выше концепции; пэгпд Бузсего пз1пя Яуэтет.31оЬа11гаггоп) пэ1пд Яуэтеи.игпсонз.готте) рпбугс с1азз ЕптгуРогпт ( зта11с тога Магп() ( Сп11пте1пго спттепс = Сп11пте1пго.СпггепГСэ1тпте) Сп1тпге1пго яегжэпу = пен Сп1тпте1пго ( "ое-ОЕ" Сэ1тпте1пго гпзэгап = пен Сп1тпте1пго ( "гп-КШ' сопЬ1е пюпеу = 123.45) зтгтпс 1осз1Мопеу = топеу.тоЯГт1пч( "С", сптгепт Мезээяевох.Ялом( 1оса1Мопеу, "Локальные деньги" 1оса1Мопеу = иопеу.тоБСггпя( "С", яетиапу ) 1 МеэээдэВсх.БЬон( 1оса1Мопеу, "Деньги Германии" ); 1оса1Мопеу = испеу.тоБГт1пд( "С", гпзэгэп )) МезэасэВох.БЬон( 1оса1Мопеу, "Деньги России" ); В этом примере отображается строка с использованием типа Мез задевох, определенного в Яуэсет. Х1поон.

Роппз, поскольку консоль не особенно подходит для вывода символов 1)штебе. Выбранный спецификатор формата — "С" — служит для отображения числа в формате валюты, для первого отображения используется экземпляр Со11 и ге1п Го, при- 230 Глава 8 соединенный к текущему потоку, а для второго создастся Сн1гпге 1п Го для ]Ърмании и России. Обратите внимание, что при формировании строки тип 5уя сев. РопЫе использует свойства спггепсупесаиа15ерагагог. спггепсуРес1иа1Ргдася и спггепсубупьо1 экземпляранппЬегГогиас1пТо, возвращенного методом Сп1спге1пТо.беГГогпас. Если бы отображался экземпляр РасеТ1ие. то аналогичным образом реализация РасеТ1пе метода 1Гогваггаые.

тоясгапд использовала бы акземпляр РагетапеГогиас1пто, возвращенного методом Сп1гпге1пТо. БеСГогиаг. СОПВО1Е.ЯЕХ1ЕЫПЕ И Я~~~Пд. УОХПай В примерах, повсеместно приводимых в книге, интенсивно используется метод сопяо1е. нгасеьапе. Одна из удобных форм этого метода, идентичных некоторым перегрузкам Ягг1пд. Гогиаг, позволяЕт строить составнЫе строки, замЕняя дескрипторы формата внутри строки переменным количеством переданных параметров. На практике метод я сг1пд. Гогияг подобен семейству функций рггпг Т из С и С++. Однако он намного гибче и безопаснее, поскольку основан на средствах форматирования .]дЕТ Ггагпежог)г, описанных ранее. Взглянем на следующий пример использования Бгг1пд.

Гоппа(и иягпд Бузсепп пя1пд Буяпес.51ооз11гаггопл пягпд Буяпеи.кгпс(оня.гогиял рпЬ11с с1аяя ВппгуРогпп япаггс пагб Ма1п( ясггпд(] агдя ) ( 11( агдя.Ьепдпл < 3 ) ( Сопяо1е.нгггеьгпе( "Введите 3 параметра" гегпгпл ) япггпд соироятге = Япгтпд.гогияп( "(О) + (1) = (2)" агдя[0], агдя[1], ягдя[2] Сопяо1е.нггсе[гпе( соироягпе ); Как видите, указатель места заполнения представлен числом в фигурных скобках, которое является индексом в следующем далее списке аргументов.

Метод 5гтапд. Го гтас, как и Сопя о1е . Игасе11пе, имеет перегрузку, принимающую переменное количество аргументов для использования в качестве подставляемых значений. В данном примере реализация метода Бсггпд. Гестас заменяет каждый указатель места заполнения, используя общее форматирование типа, которое получается в результате вызова на этом типе версии ТоБГггпд без параметров. Если экземпляр, подставляемый в данное место, поддерживает 1ГогиапсаЬ1е, то вызывается метод 1Гогиасгаые. тоБгггпд со спецификатором формата пп11, что обычно эквивалентно применению спецификатора "6".

Кстати, если внутрь исходной строки нужно поместить фигурные скобки, которые должны отображаться при выводе, их необходимо дублировать, те. ( ( или ) ). Точный формат подставляемого элемента выглядит как (индекс [, выравнивание) [: форматналСтрока] ) . где элементы внутри квадратных скобок не обязательны. Значение индекс отсчитывается от нуля и используется для ссылки на один из завершающих аргументов, переданных методу. Значение выравнивание представляет ширину, которая отводитсн элементу внутри составной строки.

Например, если ширина Работа со строками 231 установлена равной восьми символам и передана более короткая строка, то она будет дополнена пробелами до ааданной ширины. И,наконец, часть форматнаяСтрока подставляемого элемента позволяет обозначить точный формат. Форматная строка — зто строка в определенном стиле, которая должна использоваться, если планируется вызов 1ГотваССаЬ1е.ТоЯСт1пс на самом экземпляре, о чем говорилось в предыдущем разделе. К сожалению, указывать отдельный экземпляр ТГогвасРтоуабет для каждой из подставляемых строк нельзя. Вспомните,что метод ТГбтваССет.тоБСг1по принимает 1ГогвасРгоч1с(ег. Однако при использовании ясг1пс.уотвас и строки заполнителя,как было показано ранее.

ЯСгспс.уотваС просто передает значение пц11 для 1ГогвасРгочск)ег,когда вызывает 1Гогвассег.тоясгспс. В результате применяются форматеры по умолчанию, ассоциированные с культурой текущего потока. Если нужно создать составную строку из элементов, используя множество поставщиков форматов или множество культур, следует непосредственно применять ТГогвассаЬ1е . то я стспд. Примеры строкового форматирования в пользовательских типах Давайте рассмотрим другой пример использования знаменитого типа Совр1ех, с которым мы упражняемся на протяжении всей этой книги.

На этот раз попробуем реализовать ТГотваССаЬ1е, чтобы сделать его несколько более удобным для генерации строковой версии экземпляра. наспех Яузгевт наспех Бузгев.ТехС; цеапд Бузгев.61опа11гаС1опк рцЬ1тс зттцст Совр1ех: ГГотваттаЬ1е рцЫ1с Совр1ех( боцЫе теа1, боцЫе 1васспату ) ( СЫз.теа1 = теа1т сЫз.твадтпату = 1вадспату; ) // Реализация 1ГотваттаЬ1е РЦЫтс зстспд Тозттспс( зстспд Тотвас, 1ГотваСРточтбет ХотваСРточ1т)ет ) ( БСт1псВц11оет зЬ = пен БтттпдВцт1бет()т тб( Тотват == "ВВБ" ) ( // Генерация отладочного вывода для данного объекта зЬ.Аррепб( сщз.Яегтуре().тоБСтспп() + "сп" )т зЬ.АРРепбуотваС( "ССдейсгвительная:СС(0)Сп", теа1 ); зЬ.Аррепбуптват ( "Стмнимая:СС( 0) сп", 1вадспату ) т ) е1зе ( зЬ.Аррепб( "( " зЬ.АРРепд( теа1.ТЬБСт1по(сотваС, сптваСРточтбет) )т зЬ.АРрепс)( " зЬ.Аррепк)( 1васспату.Тпзттспд(сотват, ТотваСРточсбет) ); зЬ.АРрет1б( " )" )1 тетцтп зЬ.ТоЯСтспс О; ) Рттчасе боцЬ1е теа1; ртГчате бпцЫе 1ваптпатук ) 232 Глава 6 риЬ11с с1ввв ЕптгуРогпт ( втзтас чо1с Маап() ( Си1тиге1пго 1осв1 Си1тиге1пГо.сиггептси1тигег Си1тиге1пго оегазпу = пеы Си1тиге1пГо ( "ие-ОЕ" ); Сотр1ех срх = пеы Соар1ех( 12.3А56, 1234.56 )) втг1пд втгСрх = срх.тсБтт1пи( "Г", 1осв1 ); Сопво1е.кггтеьапе( зтгсрх )~ вттСрх = срх.тоБгг1пд( "Г", оегазпу ); Сопзо1е.ктттеьапе( втгСрх )> Сспзо1е.нг1теьапе( "1поглвдочхый вывод: 1п(0:ОВО)", срх ); ) Основной код этого примера сосредоточен внутри реализации 1ГотааттаЬ1е.

тоБтг1пд. Для данного типа реализована форматная строка "ОВО", которая создает строку, отображающую внутреннее состояние объекта, и которая может пригодиться в целях отладки. Понятно, что можно предоставить и больше информации об экземпляре для вывода в журнал отладки, но идея должна быть ясна. Если форматная строка не равна "ОВО", то просто выполняется обращение к реализации 1ГоттаттзЬ1е типа Бувгеи.паиЬ1е. Обратите внимание на применение Бгт1пдВи11оег (см.

раздел "Бтт1пдВи11оег" далее в этой главе) для создания строки, возвращаемой в конечном итоге. Также было решено испольэовать метод сопзо1е.хтагеьапе и его синтаксис формата экземпляра для отладочного вывода на консоль — просто, чтобы продемонстрировать разнообразие применения. ХСПВ~ОПйОЕ1Ва1~ЕХ 1сизгоаГотпаттет — это интерфейс, позволяющий заменять или расширять встроенный или существующий интерфейс 1ГотваттаЬ1е объекта.

Всякий раз, когда вызывается ятг1пд. Гогазт или Бтт1пяВи11с(ет.)(ррепг)Готызг для преобразования экземпляра объекта в строку, перед тем, как произойдет вызов через реализацию 1Гогаагтзь1е.тоБтт1по объекта или Оь)ест.тоБтт1по,если интерфейс 1Готиаттаь1е не реализован, сначала выполняется проверка, не предоставляет ли переданный 1ГотизгРточ1оет собственного средства форматирования.

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

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

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

Нэш Трей - C# 2010
Accelerated_C_2010-4565
3_syntax_overview
3_generics_1.cs
as_1.cs
boxing.cs
conversions_1.cs
implicit_type_1.cs
is_1.cs
references_1.cs
references_2.cs
references_3.cs
values_1.cs
4_classes_structs
4_abstract_classes_1.cs
4_beforefieldinit_1.cs
4_box_1.cs
4_box_2.cs
4_box_3.cs
4_box_4.cs
4_box_5.cs
4_class_definition_1.cs
4_compareto_1.cs
4_containment_example_1.cs
4_containment_example_2.cs
4_containment_example_3.cs
4_ctor_struct_1.cs
4_ctor_struct_2.cs
4_ctor_struct_3.cs
4_destructor_1.cs
4_destructor_2.cs
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7050
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее