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
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
😎 Как лаконично проверить структуру массива или кортежа?

С выходом C# 11 стали доступны списковые паттерны (*list patterns*), которые позволяют сопоставлять коллекции по элементам, как с начала, так и с конца — просто, читаемо и без лишних условий.

Первое условие проверяет, что массив начинается на 1, 2, заканчивается 10, и содержит что угодно посередине (..).

Второе — определяет, что точка находится в первой четверти, если обе координаты больше нуля.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍8🔥3
❤39😁14👍2🔥2
👩‍💻 Сканируем порты на удалённом хосте!

Проверяем, какие порты открыты у сервера, чтобы найти активные службы и баги.

Что важно знать:
• Таймаут спасает от долгих зависших подключений;

• Проверку лучше запускать сразу на все порты;

• Коллекция результатов должна быть потокобезопасной.


Можно легко усложнить: добавить логирование, аргументы командной строки и поддержку UDP.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6🔥5🤝4