Net framework 5, а также среды Visual Studio 2012 и C#


Получение.строкового.представления.объекта рис. 14.5



Download 6,27 Mb.
Pdf ko'rish
bet279/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   275   276   277   278   279   280   281   282   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

383
Получение.строкового.представления.объекта
рис. 14.5.
.Числовое.значение.во.вьетнамском.формате.денежной.величины
Так 
ToString
запрашивает у объекта (
CultureInfo
) данные о надлежащем фор-
матировании чисел. Числовым типам (вроде 
Decimal
) достаточно получить лишь 
сведения о форматировании чисел. Однако другие типы (вроде 
DateTime
) могут 
вызывать 
GetFormat
иначе:
DateTimeFormatInfo dtfi = (DateTimeFormatInfo)
formatProvider.GetFormat(typeof(DateTimeFormatInfo));
Раз параметр 
GetFormat
может идентифицировать любой тип, метод достаточно 
гибок, чтобы запрашивать любую форматную информацию. Сейчас типы .NET 
Framework с помощью 
GetFormat
запрашивают информацию только о числах 
и дате/времени; в будущем появится возможность запрашивать другие сведения.
Кстати, чтобы получить строку для объекта, который не отформатирован в со-
ответствии с определенными региональными стандартами, вызовите статическое 
свойство 
InvariantCulture
класса 
System.Globalization.CultureInfo
и передайте 
возвращенный объект как параметр 
formatProvider
методу 
ToString
:
Decimal price = 123.54M;
String s = price.ToString("C", CultureInfo.InvariantCulture);
MessageBox.Show(s);
После компоновки и запуска этого кода появится информационное окно 
(рис. 14.6). Обратите внимание на первый символ в выходной строке: 
¤
. Он пред-
ставляет международное обозначение денежного знака (U+00A4).
рис. 14.6.
.Числовое.значение.в.формате,.представляющем.
абстрактную.денежную.единицу


384
Глава.14 .Символы,.строки.и.обработка.текста
Обычно нет необходимости выводить строку в формате инвариантных регио-
нальных стандартов. В типовом случае нужно просто сохранить строку в файле, 
отложив ее разбор на будущее.
В FCL интерфейс 
IFormatProvider
реализуется только тремя типами: 
уже упоминавшимся типом 
CultureInfo
, а также типами 
NumberFormatInfo
и 
DateTimeFormatInfo
. Когда 
GetFormat
вызывается для объекта 
NumberFormatInfo

метод проверяет, является ли запрашиваемый тип 
NumberFormatInfo
. Если да, воз-
вращается 
this
, нет — 
null
. Аналогичным образом вызов 
GetFormat
для объекта 
DateTimeFormatInfo
возвращает 
this
, если запрашиваемый тип 
DateTimeFormatInfo

и 
null
— если нет. Реализация этого интерфейса для этих двух типов упрощает 
программирование. Чаще всего при получении строкового представления объек-
та вызывающая программа задает только формат, довольствуясь региональными 
стандартами, связанными с вызывающим потоком. Поэтому обычно мы вызываем 
ToString
, передавая строку форматирования и 
null
как параметр 
formatProvider

Для упрощения работы с 
ToString
во многие типы включены перегруженные версии 
метода 
ToString
. Например, тип 
Decimal
предоставляет четыре перегруженных 
метода 
ToString
:
// Эта версия вызывает ToString(null, null)
// Смысл: общий формат, региональные стандарты потока
public override String ToString();
// В этой версии выполняется полная реализация ToString
// Здесь реализован метод ToString интерфейса IFormattable
// Смысл: и формат, и региональные стандарты задаются вызывающей программой
public String ToString(String format, IFormatProvider formatProvider);
// Эта версия просто вызывает ToString(format, null)
// Смысл: формат, заданный вызывающей программой, 
// и региональные стандарты потока
public String ToString(String format);
// Эта версия просто вызывает ToString(null, formatProvider)
// Здесь реализуется метод ToString интерфейса IConvertible
// Смысл: общий формат и региональные стандарты, 
// заданные вызывающей программой
public String ToString(IFormatProvider formatProvider);

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   275   276   277   278   279   280   281   282   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish