TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.27K subscribers
Post #308 3.43K
А как там строки форматировать то?

Форматирование строк в C# можно делать по-разному, причём, в зависимости как от потребностей, так и возможностей

Задача реализации метода ToString может посоревноваться в сложности с выбором названия переменной 😠

Вот, например, если вам нужно вывести куда-то номер телефона в красивом виде
+7 (905) 123-45-67

То забудьте про разбиение числа на цифры, нарезку слайсов из получившегося массива и так далее.
Всё просто, ребятки:
long msisdn = 79051234567;
string phoneNumberFormatted = $"{msisdn:+# (###) ###-##-##}";

Как вы поняли, циферки вот так элегантно подставляются на место решёточек🤩

Бывают случаи, когда нужно очень тонко настроить сериализацию чисел.
Группировочки всякие расставить, разделители по желанию заказчика...
Тогда, отдельно взятый кодер может упороться и начать писать алгоритм расчёта десятков или чего-нибудь ещё 🙄
А всего-то, надо просто знать про существование класса NumberFormatInfo, где есть всё необходимое:
decimal someAmount = 1234.5678m;
var nfi = new NumberFormatInfo
{
NumberGroupSeparator = " ",
NumberDecimalSeparator = ",",
NumberDecimalDigits = 3,
};
var someAmountFormatted = someAmount.ToString("N", nfi); // 1 234,568


Видел неоднократно в кодовых базах коммерческих проектов, когда при необходимости вывести строкой дату, начинаются приседания в духе - части даты отдельно, чтобы между ними поставить разделитель, и ещё положим тут словарик какой-нибудь для локализации 😫
Вывод: учите базу (MSDN):
var date = new DateTime(2024, 05, 10);
var ru = CultureInfo.GetCultureInfo("ru-RU");
var dateFormatted = date.ToString("dd MMMM yyyy", ru); // 10 мая 2024
  • 👍 49
  • 🔥 7
  • ❤ 2
More from @steponeit
  1. Sep 29, 2026Рассказал как автоматизировал сборку лексера компилятором для своего языка программировани…
  2. Sep 28, 2026Пошутил про джавистов в прямом эфире 😅 Шарпизм победил окончательно и бесповоротно!
  3. Sep 27, 2026Post #860
  4. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  5. Sep 22, 2026Post #858
  6. Sep 21, 2026Post #857
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →