Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
987 of 1492 menu
◀ ▶

Интерфейс IFormattable

Метод IFormattable.ToString принимает format и IFormatProvider. В шаблоне string.Format вызовется автоматически. Запись в буфер без лишней строки - ISpanFormattable.

Синтаксис

public string ToString(string? format, IFormatProvider? provider); string text = string.Format( CultureInfo.InvariantCulture, "{0:G}", value);

Пример

Давайте выведем Box форматом "G":

using System; using System.Globalization; class Box : IFormattable { public string ToString(string? format, IFormatProvider? provider) { if (format is null or "G") { return "abcde"; } return "12345"; } } class Program { static void Main() { var box = new Box(); string res = box.ToString("G", CultureInfo.InvariantCulture); Console.WriteLine(res); } }

Результат выполнения кода:

"abcde"

Пример

Давайте вызовем ToString с null вместо формата:

using System; using System.Globalization; class Box : IFormattable { public string ToString(string? format, IFormatProvider? provider) { if (format is null or "G") { return "abcde"; } return "12345"; } } class Program { static void Main() { var box = new Box(); string res = box.ToString(null, CultureInfo.InvariantCulture); Console.WriteLine(res); } }

Результат выполнения кода:

"abcde"

Пример

Давайте подставим объект в string.Format:

using System; using System.Globalization; class Box : IFormattable { public string ToString(string? format, IFormatProvider? provider) { if (format is null or "G") { return "abcde"; } return "12345"; } } class Program { static void Main() { var box = new Box(); string res = string.Format( CultureInfo.InvariantCulture, "{0:G}", box); Console.WriteLine(res); } }

Результат выполнения кода:

"abcde"

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить