Что делает IFormatProvider?
Интерфейс IFormatProvider
обычно реализуется c# для вас классом CultureInfo
, например:
-
CultureInfo.CurrentCulture
-
CultureInfo.CurrentUICulture
-
CultureInfo.InvariantCulture
-
CultureInfo.CreateSpecificCulture("de-CA") //German (Canada)
Интерфейс visual-c# - это шлюз для функции, которая aspx получает набор данных, связанных aspdotnet с языком и региональными c#-language параметрами. Два общедоступных asp.net-website объекта культуры, для которых iformatprovider можно запросить IFormatProvider
:
Обычно это asp.net-website работает, когда вы просите c# IFormatProvider
предоставить вам объект csharp DateTimeFormatInfo
:
DateTimeFormatInfo format;
format = (DateTimeFormatInfo)provider.GetFormat(typeof(DateTimeFormatInfo));
if (format != null)
DoStuffWithDatesOrTimes(format);
Также известно, что любой asp.net-website интерфейс IFormatProvider
, скорее всего, реализуется c#.net классом, который происходит asp.net от CultureInfo
или происходит от DateTimeFormatInfo
, поэтому visual-c# вы можете преобразовать интерфейс iformatprovider напрямую:
CultureInfo info = provider as CultureInfo;
if (info != null)
format = info.DateTimeInfo;
else
{
DateTimeFormatInfo dtfi = provider as DateTimeFormatInfo;
if (dtfi != null)
format = dtfi;
else
format = (DateTimeFormatInfo)provider.GetFormat(typeof(DateTimeFormatInfo));
}
if (format != null)
DoStuffWithDatesOrTimes(format);
Но не делайте этого
Вся эта тяжелая asp-net работа уже написана для вас:
Чтобы получить DateTimeFormatInfo
из IFormatProvider
:
DateTimeFormatInfo format = DateTimeFormatInfo.GetInstance(provider);
Чтобы получить NumberFormatInfo
из IFormatProvider
:
NumberFormatInfo format = NumberFormatInfo.GetInstance(provider);
Ценность asp-net IFormatProvider
заключается в том, что вы visual-c# создаете свои собственные .cs-file объекты культуры. Если они asp.net реализуют IFormatProvider
и возвращают запрашиваемые asp.net-website объекты, вы можете обойти iformatprovider встроенные языки.
Вы также aspdotnet можете использовать IFormatProvider
для asp.net передачи произвольных объектов c#.net культуры - через IFormatProvider
. Например. имя iformatprovider бога в разных культурах
- бог
- Бог
- Иегова
- Яхве
- יהוה
- אהיה אשר אהיה
Это c-sharp позволяет вашему пользовательскому c#-language классу LordsNameFormatInfo
перемещаться внутри .cs-file IFormatProvider
, и вы можете сохранить идиому.
На visual-c# самом деле вам никогда не iformatprovider понадобится вызывать метод iformatprovider GetFormat
для IFormatProvider
самостоятельно.
Когда asp.net-website вам понадобится IFormatProvider
, вы можете c-sharp передать объект CultureInfo
:
DateTime.Now.ToString(CultureInfo.CurrentCulture);
endTime.ToString(CultureInfo.InvariantCulture);
transactionID.toString(CultureInfo.CreateSpecificCulture("qps-ploc"));
Примечание. Любой c#-language код является общественным asp.net достоянием. Ссылка на авторство c#-language не требуется.
c#
asp.net
iformatprovider
Что делает IFormatProvider?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.