Это механизм, который позволяет объявлять реализацию прямо в интерфейсе, сохраняя совместимость со старыми реализациями и упрощая развитие API.
Что важно знать:
• Метод интерфейса теперь может иметь тело, при этом обязателен модификатор доступа;
• Класс-реализация может переопределить такой метод, но не обязан;
• Новые методы можно добавлять в интерфейс, не ломая существующие реализации.
Так вы получаете гибкий контракт, который можно расширять без «болезненных» правок по всему проекту
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍8❤4🤝3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38👍7❤6🤝2👎1
👍11🔥7❤5
Они подгружают ассеты именно тогда, когда они нужны, — движок находит их локально или скачивает с
CDN по назначенному адресу, поэтому билд получается компактнее.Ключевые моменты:
• Загружает только нужные ресурсы, экономит место и память.
• Делит файлы на локальные и сетевые для гибкости.
• Позволяет обновлять игру без переустановки и долгих ожиданий.
Они уменьшают размер билда и освобождают память через
Release, делая игру плавной даже на слабых устройствах.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤6👍6🤝1
Прерываем длительные задачи с CancellationToken!
Иногда задача «зависает», и нужно прервать её заранее — при закрытии окна, нажатии «Отмена» или по таймеру. Раньше мы делали так:
Такой ручной флажок неудобен, особенно в асинхронных операциях с
Токен готов! Запускаем работу в отдельной задаче и проверяем отмену перед каждой задержкой.
Обернём вызов в
🔥 Теперь ты умеешь безопасно прерывать асинхронные задачи — по таймеру или по событию!
➡️ C# Ready | #практика
Иногда задача «зависает», и нужно прервать её заранее — при закрытии окна, нажатии «Отмена» или по таймеру. Раньше мы делали так:
bool cancel = false;
if (cancel) break; // громоздко
Такой ручной флажок неудобен, особенно в асинхронных операциях с
await. Теперь делаем цивильно — через CancellationTokenSource.using var cts = new CancellationTokenSource();
// отмена через 3 секунды
cts.CancelAfter(3000);
Токен готов! Запускаем работу в отдельной задаче и проверяем отмену перед каждой задержкой.
await Task.Run(async () =>
{
for (int i = 1; i <= 10; i++)
{
cts.Token.ThrowIfCancellationRequested(); // 💥 если отменили
Console.WriteLine($"Шаг {i}/10…");
await Task.Delay(1000, cts.Token); // отменяемое ожидание
}
});
Обернём вызов в
try/catch, чтобы красиво сообщить о прерывании.catch (OperationCanceledException)
{
Console.WriteLine("Задача отменена");
}
🔥 Теперь ты умеешь безопасно прерывать асинхронные задачи — по таймеру или по событию!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍7❤5
Мини-приложение, которое читает текст и рисует частотную диаграмму.
В этой задаче:
• Принимаем строку и приводим буквы к одному виду.
• Считаем сколько раз встречается каждый знак кроме пробелов.
• Рисуем полоски так, чтобы самые частые были длиннее.
Диаграмма мгновенно показывает, какие символы в тексте преобладают.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥14👍9❤6🤝6