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

ISpanFormattable и TryFormat в C#

Метод TryFormat пишет текст в уже выделенный буфер и сообщает, хватило ли места. Сама запись обходится без промежуточной строки.

Число 9 помещается в буфер из 16 символов. Если метод вернёт false, вместо числа печатают запасную метку:

using System.Globalization; Span<char> buf = stackalloc char[16]; Tiny t = new Tiny(9); bool ok = t.TryFormat(buf, out int written, default, null); Console.WriteLine(ok ? buf[..written].ToString() : "fail"); readonly struct Tiny(int v) : ISpanFormattable { public bool TryFormat(Span<char> dest, out int charsWritten, ReadOnlySpan<char> format, IFormatProvider? provider) { return v.TryFormat(dest, out charsWritten); } public string ToString(string? format, IFormatProvider? formatProvider) => v.ToString(formatProvider); }

Запишите число 24 в буфер на восемь символов и выведите получившийся текст.

Запишите число 1000 в буфер из одного символа и выведите False.

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