В этой шпаргалке вы узнаете, как грамотно управлять культурными настройками приложения: менять формат дат и чисел под привычки пользователя, использовать инвариантные форматы для надёжной сериализации, обращаться к кешированным объектам по коду языка и на лету адаптировать шаблоны выводаPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤5🤝5👍2
Эффективная отмена операций с CancellationToken!
Часто нужно прерывать долгие операции по таймауту или по внешнему сигналу — как сделать это просто и гибко?
Сначала создаём источник с таймаутом:
Далее связываем таймаутный токен с внешним и передаём в асинхронный метод:
🔥 Главное — комбинируйте таймауты и внешние токены для гибкой и надёжной отмены операций.
➡️ C# Ready | #практика
Часто нужно прерывать долгие операции по таймауту или по внешнему сигналу — как сделать это просто и гибко?
Сначала создаём источник с таймаутом:
var ctsTimeout = new CancellationTokenSource();
ctsTimeout.CancelAfter(TimeSpan.FromSeconds(5));
var timeoutToken = ctsTimeout.Token;
Далее связываем таймаутный токен с внешним и передаём в асинхронный метод:
var ctsExternal = new CancellationTokenSource();
using var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(
timeoutToken, ctsExternal.Token);
await SomeLongOperationAsync(linkedCts.Token);
🔥 Главное — комбинируйте таймауты и внешние токены для гибкой и надёжной отмены операций.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍7🔥4
Асинхронность — это не просто техника ускорения, а способ сохранить живость интерфейса. Правильное использование
await делает взаимодействие с приложением плавным, отзывчивым и естественным для пользователя.В этом гайде:
• Помогаем коду “дышать” без остановки и ожидания
• Делаем действия пользователя мгновенно ощущаемыми и живыми
• Учимся писать обработчики, которые не тормозят весь поток
Асинхронный код — это про комфорт: интерфейс работает, пока программа думает.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍10❤4🤝2😁1
🔥15❤5👍4
Едва заметное смещение порядка запуска скриптов способно породить загадочные баги, поэтому раз и навсегда стоит приручить их хронометраж в своём проекте.
В этом посте:
• Ранний запуск кода убирает неожиданные задержки во время старта;
• Чёткий порядок шагов помогает быстро ловить мелкие баги;
• Грамотная инициализация ускоряет запуск и упрощает будущие правки.
Держи сценарии по порядку, и проект отблагодарит стабильностью, ясным поведением, лёгкой отладкой и быстрой разработкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍8❤4
Как проще проверять свойства объектов без нагромождения if?
Во вложенных моделях условия быстро превращаются в нечитаемые цепочки: проверяем
До
С этим то же самое выражается куда короче:
🔥 Такой стиль делает проверки по свойствам более декларативными: читаем условие как описание «требуемой формы» объекта, а не как техническую реализацию с кучей логических операторов
➡️ C# Ready | #совет
Во вложенных моделях условия быстро превращаются в нечитаемые цепочки: проверяем
null, диапазоны, флаги — всё в одной куче. В C# 8 появились property patterns, которые позволяют описывать форму объекта прямо в условии.До
property patterns приходилось писать так:if (point != null &&
point.X > 0 && point.X < 10 &&
point.Y >= 5)
{
Console.WriteLine("Точка в зоне интереса");
}
С этим то же самое выражается куда короче:
if (point is { X: > 0 and < 10, Y: >= 5 })
{
Console.WriteLine("Точка в зоне интереса");
}Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍11🔥5
В этой шпаргалке вы познакомитесь с базовыми операторами LINQ для фильтрации, проекции и сортировки коллекций: от выбора элементов по условию и преобразования их в нужный формат до упорядочивания по разным ключам и «расплющивания» вложенных последовательностей.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31🤝13👍8❤3