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



Download 6,27 Mb.
Pdf ko'rish
bet283/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   279   280   281   282   283   284   285   286   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C


Глава.14 .Символы,.строки.и.обработка.текста
// argFormat ссылается на замещаемую строку форматирования,
// полученную из параметра format
String argFormat = /* ... */;
// argObj ссылается на соответствующий элемент
// параметра-массива args
Object argObj = /* ... */;
// argStr будет указывать на отформатированную строку,
// которая добавляется к результирующей строке
String argStr = null;
// Если есть специальный объект форматирования,
// используем его для форматирования аргумента
if (cf != null)
argStr = cf.Format(argFormat, argObj, formatProvider);
// Если специального объекта форматирования нет или он не выполнял
// форматирование аргумента, попробуем еще что-нибудь
if (argStr == null) {
// Выясняем, поддерживает ли тип аргумента
// дополнительное форматирование
IFormattable formattable = argObj as IFormattable;
if (formattable != null) {
// Да; передаем методу интерфейса для этого типа
// строку форматирования и класс-поставщик
argStr = formattable.ToString(argFormat, formatProvider);
} else {
// Нет; используем общий формат с учетом
// региональных стандартов потока
if (argObj != null) argStr = argObj.ToString();
else argStr = String.Empty;
}
}
// Добавляем символы из argStr в массив символов (поле - член класса)
/* ... */
// Проверяем, есть ли еще параметры, нуждающиеся в форматировании
MoreReplaceableArgumentsToAppend = /* ... */;
}
return this;
}
Когда 
Main
обращается к методу 
AppendFormat
, тот вызывает метод 
GetFormat
моего поставщика формата, передавая ему тип 
ICustomFormatter
. Метод 
GetFormat

описанный в моем типе 
BoldInt32s
, «видит», что запрашивается 
ICustomFormatter

и возвращает ссылку на собственный объект, потому что он реализует этот интер-
фейс. Если из 
GetFormat
запрашивается какой-то другой тип, я вызываю метод 
GetFormat
для объекта 
CultureInfo
, связанного с вызывающим потоком.
При необходимости форматировать замещаемый параметр 
AppendFormat
вы-
зывается метод 
Format
класса 
ICustomFormatter
. В моем примере вызывается 


389
Получение.объекта.посредством.разбора.строки
метод 
Format
, описанный моим типом 
BoldInt32s
. В своем методе 
Format
я про-
веряю, поддерживает ли форматируемый объект расширенное форматирование 
посредством интерфейса 
IFormattable
. Если нет, то для форматирования объекта 
я вызываю простой метод 
ToString
без параметров (унаследованный от 
Object
); 
если да — вызываю расширенный метод 
ToString
, передавая ему строку формати-
рования и поставщика формата.
Теперь, имея форматированную строку, я проверяю, имеет ли объект тип 
Int32

и если да, заключаю строку в HTML-теги 

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   279   280   281   282   283   284   285   286   ...   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