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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/csharp_ready
Download Telegram
👩‍💻 Безошибочная работа со словарями!

Овладей Dictionary — добавляй пары без неожиданностей, извлекай значения надёжно и убирай лишнее одним вызовом, сохраняя код чистым, понятным и отзывчивым.

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2611👍7🤝6
👍9🔥85
Что же выведет консоль?
Anonymous Quiz
23%
A
67%
B
3%
C
7%
D
👍17🤝11🔥5😁5
📱 UI Events: гибкое управление интерфейсом!

Когда кнопки перестают напрямую ссылаться на игровую логику, интерфейс становится легче перестраивать и переносить между сценами.

В этом посте разбираем:
События освобождают UI от лишних связей и настроек;

Логика реагирует гибко и не зависит от конкретных экранов;

Проект выдерживает изменения без поломок и переработок


Такой способ организации UI делает игру стабильнее, понятнее и легче расширяемой.

➡️ C# Ready | #unity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥11👍6🤝3😁1
16👍12🔥5😁2
Быстрые lookup-таблицы с FrozenDictionary в .NET 8!

Когда у тебя есть справочники «один раз создал — тысячу раз читаешь» (коды стран, статусы, типы операций), обычный Dictionary ок, но в .NET 8 можно выжать ещё больше скорости и меньше памяти.

Сначала собираем данные как обычно, затем «замораживаем» словарь:
using System.Collections.Frozen;

var countryCodes = new Dictionary<string, string>
{
["FI"] = "Finland",
["SE"] = "Sweden",
["NO"] = "Norway",
["DK"] = "Denmark",
};

// Один раз преобразуем в FrozenDictionary
var frozenCountryCodes = countryCodes.ToFrozenDictionary();

// Дальше работаем только с frozen-версией
if (frozenCountryCodes.TryGetValue("FI", out var name))
{
Console.WriteLine(name); // Finland
}


FrozenDictionary оптимизирован под частые чтения:
строится один раз при старте,
дальше не изменяется,
lookup обычно быстрее, чем у обычного Dictionary,

Для наборов без значений — то же самое, но через FrozenSet:
using System.Collections.Frozen;

var euCountries = new[] { "FI", "SE", "NO", "DK" }.ToFrozenSet();

if (euCountries.Contains("FI"))
{
Console.WriteLine("EU country");
}


🔥 Главное — если коллекция инициализируется один раз и дальше только читается, переводи её в FrozenDictionary/FrozenSet.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥148👍5
Как сократить цепочки if/else по статусам?

Во многих проектах бизнес-логика по статусам размазана по коду длинными цепочками if/else: для каждого нового состояния появляется ещё один блок, читать и поддерживать это всё становится всё сложнее

Классический вариант быстро разрастается:
string text;

if (status == OrderStatus.New)
text = "Новый заказ";
else if (status == OrderStatus.Paid)
text = "Заказ оплачен";
else
text = "Неизвестный статус";


switch-expression делает то же самое компактным выражением:
var text = status switch
{
OrderStatus.New => "Новый заказ",
OrderStatus.Paid => "Заказ оплачен",
_ => "Неизвестный статус"
};


Такой код легче читать глазами: видно все варианты сразу, проще добавить новый статус и сложнее забыть про default.

🔥 Хорошо заходит для маппинга enum → текст, выбора цвета, типа уведомления или уровня логирования.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥9👍6
👩‍💻 Файлы без страха и боли!

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

В этом гайде:

Покажем, как аккуратно читать содержимое текстового файла;

Разберём, как сохранять строки и дописывать новые;

Поможем перестать бояться путей, ошибок и пустых файлов.


Освоив базовые операции с файлами, ты сделаешь маленькие утилиты гораздо полезнее в повседневных задачах разработки.

➡️ C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥168👍3🤝2😁1
Как создавать коллекции без десятка Add?

Во многих местах сначала создаём коллекцию, а потом построчно заполняем её — кода получается больше, чем самих данных:
var ids = new List<int>();
ids.Add(1);
ids.Add(2);
ids.Add(3);

var byId = new Dictionary<int, string>();
byId.Add(1, "Alice");
byId.Add(2, "Bob");


С инициализаторами коллекций данные видно сразу, без шума вокруг:
var ids = new List<int> { 1, 2, 3 };

var byId = new Dictionary<int, string>
{
[1] = "Alice",
[2] = "Bob"
};


🔥 Такой стиль хорошо заходит для константных списков, словарей настроек, маппингов enum → текст и тестовых данных — код читается как набор значений, а не как сценарий заполнения.

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

Мы превратим обычный ввод из консоли в небольшое исследование: возьмём текст, очистим его и соберём статистику по длинам слов, чтобы увидеть структуру фразы под новым углом.

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

Превратим сырой набор строк в понятный материал для анализа;

Увидим, как разные слова распределяются по длине и частоте;

Сделаем простую таблицу, которая сразу показывает скрытые закономерности.


И в итоге получим маленький инструмент, который помогает внимательнее смотреть на любой текст.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥127👍3👎2🤝2