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

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

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

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

На основе вышесказанного можно сделать вывод, что совместимый с 1СопсрагаЬ1е интерфейс должен подчиняться перечисленным ниже правилам. 1. х. Сопсрагето (х) должно возвращать О. Это — свойство рефлексивности. 2. Если х.Сопсрагето(у) == О, тон у.сопсрагето(х) должнобытьравно О. Это— свойство симметричности. 3. Если х.Соспрагето(у) == О и у.Соспрагето (т) == О, тон х.Соспрагето(т) должно быть равно О.

Это — свойство транзитивности. 4. Если х. Соспрзгето (у) возвращает значение, отличное от О, то у. Сопсрагето (х) также должно возвращать ненулевое значение с противоположным знаком. Другими словами, это положение говорит: если х < у, то у > х, или если х > у. тоу< х. 5. Если х.

Соспрагето (у) возвращает значение, отличное от О, и у. Соспрагето (х) возвращает значение, отличное от О, с тем же знаком, что и первое, то х. СоспрзгеТо ( у) должно вернуть ненулевое значение с тем же знаком, что и предыдущие два. Другими словами, это означает, что если х < уи у < в, тох < т, или солих > уиу > т,чоих > т. В следующем коде показана модифицированная форма класса Соспр1ехнппа>ет, реализующего 1СоспрагаЬ1е, в которой код консолидируется в приватных вспомогательных методах: ивтпч Яувгепо риЬ11с веа1ес( с1авв Соар1ехноэЬет: 1СотратаЬ1е ( риЫгс Сопср1ехкпвЬет( с(ооЫе теа1, с(опЫе 1эадтэвту ) ( гЫв.теа1 = теа1; гщв.1ааагоату = гэадгэату; ) в пансках канонических форм С№ 483 риЬ11с очегггбе Ьоо1 ЕЧиа1я( оЬ1есС оСЬег ) ( Ьоо1 теяи1С = га1век Сощр1ехнищЬег СЬат = оСЬег ав Сощр1ехнитЬег; 1г( СЬаг != пи11 ) ( геяи1С = 1птегпа1Ечиа1я( СЬат )к ) гетитп геви1С; ) риЫгс очегггбе гпт ОеСНавЬСобе() ( гегигп (гпт) СЫв.надпгтибе; ) риЬ1гс втатгс Ьоо1 орегаСог ==( Сощр1ехнищЬег пищ1, Сощр1ехншчЬет пищ2 ) ( гетитп ОЬЯесС.ЕЧиа1я(пищ1, пищ2); ) риЬ11с втаС1с Ьоо1 орегасог (=( Сощр1ехншпЬег пищ1, Сощр1ехнищЬег пшя2 ) ( гетигп !ОЬ)есС.ЕЧиа1в(пищ1, пищ2); ) риЬ1гс бпг Сощрагета( оЬЯест оСЬег ) ( Сощр1ехкищЬет СЬаг = оСЬег ав Сощр1ехншвЬег1 11( сЬаС == пи11 ) ( СЬгон пен АгдищепгвхсерС1оп( "Неверное сравнение!" ) ) гпг геви1С; 1г( 1птегпа1Ес(иа1в(сЬас) ) ( геяи1с = О; ) е1яе г№( СЫв.надп1Сибе > СЬаг.мадЫСибе ) ( геви1с = 1; ) е1ве ( геви1с = -1! ) тетитп геви1С; рг1чаге Ьоо1 1птегпа1ЕЧиа1в( Сощр1ехнищЬег СЬат ) ( гегигп (СЬгя.геа1 == СЬат.теа1) Еа (СЫв.1щао1пагу == СЬат.гщадгпагу)) ) риЬ11с боиЫе Маоп1Сибе ( оеС ( гетигп МаСЬ.ЯЧгС( МаСЬ.Рон(СЫя.геа1, 2) МаСЬ.Рон(сЫя.1щад1пагу, 2) )) ) ) l/ Прочие методы опущены для ясности.

ргбчаге геабоп1у боиЬ1е геа1) ргбчате геабоп1у боиЫе 1щад1пагук ) Является ли оЬ~ее~ форматируемым? Каждый создаваемый новый объект, или экземпляр типа значения, наследует от Яузсещ. ОЬ1 ест метод по имени тоЯСг1пд. Этот метод не принимает параметров и просто возвращает строковое представление объекта. Во всех случаях, если вызов ТоЯСг1по на объекте имеет смысл, этот метод следует переопределять.

Реализация по умолчанию, предоставленная яувсещ. ОЬ1есс, просто возвращает строковое представление имени типа обьекта, что, конечно же, не слишком полезно для объекта, от которого требует- 454 Глаза! 3 ся строковое представление, основанное на его внутреннем состоянии. Переопределять ОЬЯ ест. Тоясг1пд для всех типов необходимо всегда, даже всего лишь ради удобства вывода состояния объекта в журнал отладки. Метод ОЬ1есс.

ТоЯГг1пд удобен для получения быстрого строкового представления объекта: однако иногда этого не достаточно. Например, рассмотрим предыдущий пример Совр1ехипвЬе г. Предположим, что для этого класса требуется переопределить метод тоягг1пд. Очевидная реализация должна выводить комплексное число в виде упорядоченной пары внутри круглых скобок, например, "(1, 2)". Однако вещественная и мнимая части Совр1ехтуре имеют тип г)опЬ1е. К тому же числа с плавающей точкой не всегда представляются одинаково в разных культурах.

Американцы используют точку для отделения дробной части числа с плавающей точкой, в то время как европейцы применяют запятую. Эта проблема легко решается с использованием информации о культуре по умолчанию, ассоциированной с потоком. Обратившись к свойству Яузсев.тпгеаг)1по.тпгезг).Спггепстпгеаг).СиггепГС11гпге.можнополучить ссылки на информацию о культуре по умолчанию, детализирующую представление числовых величин. включая денежные суммы, а такжеинформацию о том, как представляются аначения даты и времени. На заметку! Тема глобализации и информации о культурах детально рассматривается з главе 8, По умолчанию свойство спггепгсо1гпге предоставляет доступ к яуэгев. 61оЬа11гасаоп.РасеТТвеРогвас1пГои Яузсев.61оЬа11гас1оп.иовЬегРогваГ1пго. Используя информацию, предоставляемую этими объектами, можно вывести Совр1ехипвЬег в форме, отвечающей культуре по умолчанию, установленной на машине, на которой работает приложение.

Соответствующие примеры приводятся в главе 8. Это решение кажется довольно простым. Однако бывают случаи, ногда испольэовать установки текущей культуры недостаточно, и пользователь объекта может пожелать самостоятельно указывать желаемую культуру. Мало того, пользователю может потребоваться задавать точный формат вывода. Например, он может предпочесть, чтобы вещественная и мнимая части Совр1ехипвЬег отображались только с пятью значащими цифрами. используя культурную информацию )Ьрмании.

Если вы разрабатываете программное обеспечение для сервера, то знаете, насколько необходима такая возможность. Компании, которые эксплуатируют сервер финансовых служб в США и обслуживают запросы из Японии, хотят отображать символ японской валнлы в формате, принятом в японской культуре. Необходимо каким-то образом указывать, нак форматировать объект, когда он преобразуется в строку методом То Я Г. гапд, не изменяя предварительно СоггепГСп1спге текущего потока. В стандартной библиотеке имеется интерфейс для решения этой задачи.

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

Однако если параметр 8 поисках канонических форм С» 455 ТотиаСРточтс(ет не равен пп11, потребуется получить информацию о форматировании от поставщика через метод 11отпаСРтон1с(ет. ОеСГоткпат, как было описано в главе 8. Интерфейс 1ГотваСРтонкс)ет выглядит следующим образом: рпЬ11с 1птетгасе 1ГотваСРтопссет ( оЬ)ест ОетготваС( Туре готваттуре ); ) С целью максимального обобщения разработчики стандартной библиотеки спроектировали метод ЯеСГотваС так, чтобы он принимал объект типа Яузтеи. Туре.

Таким образом, он является расширяемым в отношении типов поддерживаемых объектов, реализующих 1ГотнзСРтоп1с)ет. Эта гибкость удобна, если вы намерены разрабатывать собственные поставщики формата, которые должны возвращать какую-то, пока еще не определенную информацию о формате.

Стандартная библиотека предоставляет тип Яузтев. 61оЬз11каС1оп. Со1Соте1пто, который, скорее всего, удовлетворит все потребности. Объект Оп1Спте1псо реализует интерфейс 1ГотмаСРточ1п)ет, и его экземпляры можно передавать в качестве второго параметра 1ГотазссаЬ1е.тояст1пд.Пример его использования будет показан очень скоро, но сначала рассмотрим первый параметр метода Тозтт).пд. параметр формата тозсткпд позволяет задавать способ форматирования определенного числа.

Поставщик формата может описать, каким образом отображать дату или представлять валюту на основе культурных предпочтений, но первым делом необходимо знать, как форматировать объект. Все типы из стандартной библиотеки, такие как 1 от 32, поддерживают стандартные спецификаторы формата, описанные в разделе "Бшпк)згк) )чшпепс Гоппа( 8(г)пяз" документации МБР)ч). В основе своей строка формата состоит из единственной буквы.

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

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