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
👩‍💻 Сжатие изображений без потери качества!

Сегодня покажу, как уменьшить размер JPEG и PNG прямо из кода, без внешних инструментов и зависимостей.

Что важно знать:
• JPEG сжимается числом;

• PNG не теряет качество;

• Всё работает кроссплатформенно.


ImageSharp подойдёт и для ботов, и для сайтов, и просто для уборки тяжёлых картинок.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6❤3🤝2
❤10👍5🔥4
Что же выведет консоль?
Anonymous Quiz
54%
A
9%
B
24%
C
14%
D
❤15👍8🔥7
👩‍💻 Быстрая конвертация примитивов в байты и обратно!

Сегодня разбираем BitConverter, который помогает работать с бинарными данными легко и эффективно — будь то сериализация, логирование или низкоуровневые операции с памятью.

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17🔥6👍3👎1
Интерсепторы: ловим вызов метода до его выполнения — без сторонних библиотек!

Иногда нужно логировать вызовы, проверять аргументы или внедрять кросс-срезовые фичи в одном месте — вместо разбросанных Console.WriteLine по всему коду.

Подключаем нужные пространства имён и объявляем универсальный интерсептор на основе DispatchProxy:
using System;
using System.Reflection;

public class LoggingInterceptor<T> : DispatchProxy
{
public T Target { get; set; }

protected override object Invoke(MethodInfo method, object[] args)
{
Console.WriteLine($"➡️ Вызов метода: {method.Name}");
return method.Invoke(Target, args);
}
}


Теперь создаём прокси для вашего сервиса и вызываем метод через интерсептор:
// Предположим, есть интерфейс IMyService и класс MyService
IMyService real = new MyService();
var proxy = DispatchProxy.Create<IMyService, LoggingInterceptor<IMyService>>();
((LoggingInterceptor<IMyService>)proxy).Target = real;

// Все вызовы пойдут через интерсептор
proxy.DoWork();


🔥 Получаем логирование каждого вызова без сторонних AOP-библиотек — только .NET Core в комплекте!

➡ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤6👍4
📱 События без связей — через EventBus!

Простой посредник между объектами: меньше зависимостей, выше стабильность, чище архитектура.

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

• Нет прямых ссылок;

• Подписки управляют жизнью;

• Класс без Unity-зависимостей.


Этот паттерн делает код гибким и избавляет от тормозов сцены.

➡ C# Ready | #unity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥9❤4🤝1
👩‍💻 Разбираем параллельное выполнение без лишнего ожидания!

Task.WhenAll помогает запускать независимые задачи одновременно и получать результат максимально быстро.

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

• Задачи стартуют сразу;

• Итог ждёт всех;

• Ошибки приходят вместе.


Это простой способ ускорить I/O-операции, если между задачами нет зависимости и нужен результат быстрее.

➡️ C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝18❤8🔥6👍4👎1
❤10🔥8👍3