C# Ready | Unity
10.1K subscribers
1.2K photos
62 videos
552 links
Авторский канал по разработке на C# и Unity.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

РКН: https://clck.ru/3SBaT3

Реклама на бирже: https://telega.in/c/csharp_ready
Download Telegram
👩‍💻 Форматируем секунды в понятный текст!

Берём одно число в секундах и превращаем его в живое описание:
«1 день 3 часа 25 минут 4 секунды» — сразу понятно, сколько времени прошло или осталось.

В этой задаче:

Разложишь общее количество секунд на дни, часы, минуты и секунды простыми делениями;

Напишешь функцию, которая подбирает правильные окончания слов по правилам русского языка;

Соберёшь аккуратную строку, пропуская нулевые части и красиво выводя результат в консоль.


Из такого форматирования вырастают удобные логи, таймеры и отчёты, где за сухими секундами уже видно реальное время.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥149🤝8👍2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ Если вы хотите прокачать навыки в C# и .NET, загляните на отличный ресурс — Code Maze!

Это современный сайт с обширной базой знаний по backend-разработке на ASP,NET Core, архитектуре приложений, шаблонам проектирования и лучшим практикам написания кода.

На Code Maze вы найдёте подробные гайды, пошаговые туториалы и примеры из реальных проектов. Материалы подойдут как для уверенных новичков, так и для опытных разработчиков.

📌 Оставляю ссылочку: code-maze.com

➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍7🔥4
👩‍💻 Почему интерфейсы делают код свободнее?

Когда логика начинает зависеть от конкретных классов, проект постепенно «деревенеет»: любое изменение тянет за собой цепочку правок, и система теряет гибкость для роста.

В этом гайде:

Поймём, как отделить намерение от реализации в поведении кода;

Увидим, почему подмена частей становится проще и безопаснее;

Разберём, как интерфейсы помогают тестировать модули без хаоса.


Думая в терминах контрактов — код становится гибче, чище и легче расширяется

➡️ C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1811🤝10👍7😁1
Измеряем время выполнения кода через Stopwatch — без догадок

Иногда кажется, что «этот метод тормозит», но без цифр это только ощущение. В .NET есть готовый инструмент для честного замера времени — класс Stopwatch.

Сначала подключим нужное пространство имён — оно лежит в System.Diagnostics:
using System;
using System.Diagnostics;


Теперь померяем, сколько времени занимает простой цикл с подсчётом суммы.
Создаём Stopwatch, запускаем, выполняем код, останавливаем и выводим результат:
var stopwatch = Stopwatch.StartNew(); // запускаем таймер

long sum = 0;
for (int i = 0; i < 10_000_000; i++)
{
sum += i;
}

stopwatch.Stop(); // останавливаем таймер

Console.WriteLine($"Сумма: {sum}");
Console.WriteLine($"Время выполнения: {stopwatch.ElapsedMilliseconds} мс");


Возможный вывод в консоли может выглядеть так:
Сумма: 49999995000000
Время выполнения: 35 мс


Stopwatch удобно использовать как «обёртку» вокруг любого участка кода: до него — StartNew(), после — Stop() и чтение ElapsedMilliseconds или Elapsed.

🔥Главное — не гадать «быстро или медленно», а мерить цифрами через Stopwatch и уже по ним решать: оптимизировать участок, менять алгоритм или оставить как есть.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍10🔥6
👩‍💻 Рисуем дерево файлов и папок в консоли!

Берём путь к папке и превращаем его в наглядное дерево: с отступами, «ветками» и файлами внутри. Вывод мгновенно показывает структуру проекта или директории — без проводника и лишних кликов.

В этой задаче:

Рекурсивно обойдёшь подкаталоги и соберёшь структуру папок и файлов;

Научишься рисовать ветки ├──, └── и вертикальные линии;

Выведешь аккуратное дерево в консоль, получив свой мини-tree.


Такой вывод удобно использовать, чтобы быстро просматривать структуру репозитория, делиться скриншотами дерева и встраивать результат в свои CLI-инструменты или скрипты сборки.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥128🤝5
Как не городить try/catch вокруг каждого вызова?

В бизнес-логике часто у каждой операции свой try/catch: обрабатываем заказ, отправляем письмо, пишем в лог — и везде одинаковый catch с логированием и сообщением пользователю:

try { ProcessOrder(orderId); }
catch (Exception ex) { Log(ex); ShowError("Что-то пошло не так"); }

try { SendEmail(orderId); }
catch (Exception ex) { Log(ex); ShowError("Что-то пошло не так"); }


С фильтрами в catch обработку ошибок можно вынести в одно место. В try остаётся чистый, линейный код, а любой выброшенный Exception попадает в один catch.

🔥 Условие when (LogError(ex)) сначала логирует ошибку, затем возвращает true, поэтому блок обработки выполнится только после успешного логирования.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍169🔥6
👩‍💻 Коллекции без лишней магии!

В этой шпаргалке — быстрый обзор базовых коллекций .NET и правил их выбора: список, словари, множества, очередь и стек. Понимая их назначение, проще писать код, который и читабелен, и работает эффективно.

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍1512🤝7😁1