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

IFormattable в C#

Интерфейс IFormattable даёт типу свой ToString: он сам решает, как обработать строку формата и IFormatProvider. Так устроены встроенные числа и даты. Свой тип может поддержать краткий код "h" и обычный вывод для любого другого кода.

Код "h" собирает краткую запись с решёткой. Другой код или null вернёт обычное число:

using System.Globalization; Score s = new Score(12); IFormattable f = s; Console.WriteLine(f.ToString("h", CultureInfo.InvariantCulture)); // выведет "#12" readonly struct Score(int value) : IFormattable { public string ToString(string? format, IFormatProvider? provider) { return format == "h" ? $"#{value}" : value.ToString(provider); } }

Сделайте для денежной суммы краткий вид: код "s" должен давать "usd" и число. Выведите такой вид для суммы 20.

Выведите обычную запись значения 40 через invariant-культуру.

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