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

Cотрудничество: @energy_c

Реклама на бирже: https://telega.in/channels/csharp_ready/card

РКН: https://clck.ru/3SBaT3
Download Telegram
Что же выведет консоль?
Anonymous Quiz
21%
A
16%
B
44%
C
19%
D
❤10👍5🔥5😁1
👩‍💻 Удобная параллельность с TPL

Библиотека упрощает управление параллельными операциями, автоматизируя планирование и обработку ошибок.

Что важно знать:

• Задачи выполняются одновременно без сложной настройки потоков;

•
Можно легко отменять задачи и обрабатывать возникающие ошибки;

•
Работа равномерно распределяется по всем доступным ядрам процессора.


Получаете простой, быстрый и надёжный параллельный код.

➡ C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍6❤4🤝1
Организуем неблокирующий продюсер–консюмер с ChannelReader/Writer!

При обмене данными между задачами часто нужно передавать данные по мере готовности, без блокировок и ручных очередей. Вместо lock или BlockingCollection используем Channel — асинхронный и безопасный способ обмена сообщениями.

Сначала создаём канал без ограничений на размер — данные будут накапливаться в памяти:

var channel = Channel.CreateUnbounded<string>();


Запускаем продюсера: он будет отправлять сообщения в канал с небольшой задержкой:
_ = Task.Run(async () =>
{
for (int i = 1; i <= 5; i++)
{
await Task.Delay(500);
await channel.Writer.WriteAsync($"Msg #{i}");
Console.WriteLine($"Отправлено: Msg #{i}");
}
channel.Writer.Complete();
});


Теперь читаем данные по мере поступления через await foreach — потребитель не блокируется и реагирует на каждое новое сообщение:
await foreach (var msg in channel.Reader.ReadAllAsync())
{
Console.WriteLine($"Принято: {msg}");
}


🔥 Получаем асинхронную очередь: безопасную, читаемую и без ручных синхронизаций.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3❤1
👩‍💻 Сканируем сцену лучами без потерь кадров!

Выбирай подходящий луч, чтобы мгновенно находить препятствия и держать плавную работу игры.

Что важно знать:

• Тонкий луч точен, толстый учитывает размеры цели;

• Фильтрация слоёв спасает от лишних проверок и нагрузки;

• Методы без выделений экономят память и стабилизируют кадры;


Правильный луч даёт точность и экономию ресурсов.

➡️ C# Ready | #unity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥14❤6🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ Советую вам ILSpy — это популярный бесплатный декомпилятор для .NET

С его помощью можно изучать исходный код сборок, исследовать внутренности библиотек и разбирать чужие проекты без доступа к исходникам. Поддерживает просмотр C#, IL-кода, поиск по сборкам и плагины для расширения функциональности.

Оставляю ссылочку: GitHub 📱


➡ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤4👍3👎1
👩‍💻 Разюираем XmlDocument — класс для работы с XML-документами: загрузка, сохранение, создание и поиск узлов!

Он позволяет легко загружать XML из файла или строки, сохранять документ, добавлять новые элементы и работать с XPath для выборки узлов. Удобен для работы с конфигурациями, API-ответами и встроенными ресурсами.

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤5🤝5👍2
😎 Держите интересную статью с хабра, в которой вы создадите свой многопоточный сервер на C#

В этой статье:
• Асинхронное программирование
• Разбор веб-сервера
• Его реализация

🔊 Продолжай читать Habr!


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4🔥3
Кэшируем данные в памяти с MemoryCache!

Каждый раз ходить в БД или внешний API — медленно и дорого:
var price = GetPriceFromApi(id);   // каждый запрос ждёт сеть/диск


Сделаем локальный кэш на 5 минут — без сторонних Redis и SQL.
using Microsoft.Extensions.Caching.Memory;   
// nuget: Microsoft.Extensions.Caching.Memory

// создаём экземпляр кэша
var cache = new MemoryCache(new MemoryCacheOptions());


Теперь оборачиваем «тяжёлый» вызов:
int GetPriceCached(int id)
{
return cache.GetOrCreate($"price:{id}", entry =>
{
entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(5); // TTL
return GetPriceFromApi(id); // реальный источник
});
}


Проверяем работу: второй вызов берётся прямо из RAM.
Console.WriteLine(GetPriceCached(42));  // → 199
Console.WriteLine(GetPriceCached(42));
// мгновенный ответ


🔥 Частые данные ложатся в быстрый RAM-кэш и истекают автоматически — меньше нагрузка на сервисы и более быстрые ответы.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🔥4
👩‍💻 Уроки по Unity C# для начинающих!

Это курс для тех, кто хочет освоить создание игр на Unity с использованием языка C#. В плейлисте вы найдёте уроки, которые помогут понять базовые концепции языка и работу с движком Unity.

Ссылочка на плейлист: YouTube 🖤


➡️ C# Ready | #курс
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥4