Что делает 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

2022-11-08T16:46:47+00:00