Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала
Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

IFormattable.ToString - метод

Форматирует значение текущего экземпляра с использованием заданного формата.

Пространство имен:  System
Сборка:  mscorlib (в mscorlib.dll)

string ToString(
	string format,
	IFormatProvider formatProvider
)

Параметры

format
Тип: System.String
Используемый формат.
– или –
Пустая ссылка (Nothing в Visual Basic) для использования формата по умолчанию, определенного для типа реализацииIFormattable.
formatProvider
Тип: System.IFormatProvider
Поставщик, используемый для форматирования значения.
– или –
Пустая ссылка (Nothing в Visual Basic) для получения сведений о формате чисел из текущего установленного в операционной системе языкового стандарта.

Возвращаемое значение

Тип: System.String
Значение текущего экземпляра в указанном формате.

Метод ToString преобразует значение в строковое представление, которое может быть выражено несколькими способами. Точный формат зависит от определенных символов или указанного порядка, заданного определенным параметром языка и региональных параметров, профессий или отраслей. Метод можно вызывать непосредственно. Она также автоматически вызывается методами Convert.ToString(Object) и Convert.ToString(Object, IFormatProvider) и методами, которые используют составную функции форматирования в платформе .NET Framework, например String.Format(String, Object[]), Console.WriteLine(String, Object[]) и StringBuilder.AppendFormat(String, Object[]). (Дополнительные сведения см. в разделе Составное форматирование.)

Методы составного форматирования вызывают метод ToString один раз для каждого элемента формата в строке формата. Параметры, передаваемые методу, зависят от определенного метода форматирования, который вызывается и применяется в содержимом элемента формата следующим образом:

  • Если элемент формата не включает строку формата (например, если элемент формата является просто {0}), он передается null как значение параметра System.String.

  • Если элемент формата включает строку формата (например, {0:G}), эта строка формата передается как значение параметра System.String.

  • Если исходный вызов метода не включает параметр System.IFormatProvider, CultureInfo.CurrentCulture передается в качестве значения параметра System.IFormatProvider.

  • Если исходный вызов метода включает параметр System.IFormatProvider, поставщик вызова метода передается в качестве значения параметра System.IFormatProvider.

ПримечаниеПримечание

Реализации объекта ToString вызывается методами составного форматирования, только если они не передаются поставщику формата ICustomFormatter или если метод поставщика пользовательского формата Format возвращает значение null.

.NET Framework включает трех поставщиков формата, которые реализуют интерфейс IFormatProvider:

  • NumberFormatInfo предоставляет сведения о форматировании чисел, например данные о символах, используемых в качестве десятичного разделителя и разделителя групп, а также проверку орфографии и замены обозначений денежной единицы в денежных значениях.

  • DateTimeFormatInfo предоставляет информацию о форматировании даты и времени, а именно: расположение месяца, числа и года в шаблоне даты.

  • Класс CultureInfo содержит сведения о форматировании по умолчанию для определенного языка и региональных параметров, в том числе информацию о форматировании чисел, даты и времени.

Кроме того, можно определить собственного поставщика настраиваемого формата.

Примечания для разработчиков

Метод ToString должен поддерживать спецификатор формата "G" (общий). Кроме описателя "G", в классе можно определить перечень других описателей форматирования, которые он поддерживает. Кроме того, класс должен быть подготовлен для обработки спецификатора формата, значение которого null. Дополнительные сведения о заданной и код форматирования см. в разделе Типы форматирования.

В следующем примере демонстрируется класс Temperature, реализующий метод ToString. Данный пример кода является частью большого примера, приведенного в описании класса IFormattable.


using System;
using System.Globalization;

public class Temperature : IFormattable
{
   private decimal temp;

   public Temperature(decimal temperature)
   {
      if (temperature < -273.15m) 
        throw new ArgumentOutOfRangeException(String.Format("{0} is less than absolute zero.", 
                                              temperature));
      this.temp = temperature;
   }

   public decimal Celsius
   {
      get { return temp; }
   }

   public decimal Fahrenheit
   {
      get { return temp * 9 / 5 + 32; }
   }

   public decimal Kelvin
   {
      get { return temp + 273.15m; }
   }

   public override string ToString()
   {
      return this.ToString("G", CultureInfo.CurrentCulture);
   }

   public string ToString(string format)
   {
      return this.ToString(format, CultureInfo.CurrentCulture);
   }

   public string ToString(string format, IFormatProvider provider) 
   {
      if (String.IsNullOrEmpty(format)) format = "G";
      if (provider == null) provider = CultureInfo.CurrentCulture;

      switch (format.ToUpperInvariant())
      {
         case "G":
         case "C":
            return temp.ToString("F2", provider) + " °C"; 
         case "F":
            return Fahrenheit.ToString("F2", provider) + " °F";
         case "K":
            return Kelvin.ToString("F2", provider) + " K";
         default:
            throw new FormatException(String.Format("The {0} format string is not supported.", format));
      }
   }
}


.NET Framework

Поддерживается в версиях: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Переносимая библиотека классов

Поддерживается в версии: Переносимая библиотека классов

Приложения .NET для Магазина Windows

Поддерживается в версии: Windows 8

Приложения .NET для Windows Phone

Поддерживается в версиях: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

.NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Добавления сообщества

Показ:
© 2015 Microsoft