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

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

РКН: https://clck.ru/3SBaT3
Download Telegram
🔥13👍8❤5😁3
Span<T> - работаем с памятью без лишних аллокаций!

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

Раньше для этого часто приходилось копировать данные в новый массив:
int[] numbers = { 1, 2, 3, 4, 5, 6 };

int[] slice = numbers.Skip(2).Take(3).ToArray();

foreach (var n in slice)
Console.WriteLine(n);

Такой код выглядит привычно, но каждый ToArray() создает новый массив в памяти. Если таких операций много, появляются лишние аллокации и нагрузка на GC.

В C# можно использовать Span<T>, чтобы работать с частью данных без копирования:
int[] numbers = { 1, 2, 3, 4, 5, 6 };

Span<int> slice = numbers.AsSpan(2, 3);

foreach (var n in slice)
Console.WriteLine(n);

Span<T> создает представление на участок памяти, а не новый массив. То есть ты работаешь с нужной частью данных без лишних выделений памяти.

🔥 В итоге вместо создания временных массивов ты работаешь с уже существующими данными напрямую

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6❤4
This media is not supported in your browser
VIEW IN TELEGRAM
☕️ Ultimate Awesome — огромная подборка с ресурсам!

Этот репозиторий настоящий мета-каталог по самым разным технологиям. Внутри собраны тысячи подборок с библиотеками, инструментами, статьями и гайдами по программированию. Отдельные разделы посвящены языкам C# и C++, где можно найти библиотеки, фреймворки, проекты и обучающие ресурсы.

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


➡️ C# Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥5
👩‍💻 URL и адреса в C# — без ручного парсинга и лишних ошибок!

В этой шпаргалке — как безопасно создавать Uri, валидировать адреса, кодировать параметры, доставать части URL и строить относительные ссылки без хрупкой работы со строками

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤5👍4🤝1
❤️ Нашёл годную статью — создание Telegram-бота с пошаговой настройкой и практическими примерами!

В этой статье:

• Регистрация бота через BotFather и получение токена
• Настройка клиента, запуск получения обновлений и обработка сообщений
• Обработка различных типов Update — сообщения, кнопки, опросы и другое

🟡 Рекомендую прочитать на Habr!


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍4🔥4
Почему init безопаснее, чем публичный set?

С set состояние объекта можно менять из любого места в коде. Объект создаётся в одном месте, но через время может быть случайно изменён в другом — и отследить источник проблемы становится сложнее.
public class User
{
public string Name { get; set; }
}

user.Name = "Bob"; // можно изменить когда угодно


init разрешает задать значение только в момент создания объекта. После этого свойство становится только для чтения, и состояние объекта остаётся стабильным.
public class User
{
public string Name { get; init; }
}

var user = new User { Name = "Alex" };


Попытка изменить значение позже приведёт к ошибке компиляции:
user.Name = "Bob"; // ошибка


Такой подход особенно полезен для DTO, response-моделей, конфигураций и любых объектов, которые после создания не должны меняться.

🔥 init — простой способ защитить состояние объекта и уменьшить риск случайных изменений.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
❤27👍6🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Uizard — нейросеть для быстрого создания интерфейсов!

Это AI-инструмент для прототипирования UI/UX. Достаточно описать идею сайта или приложения, и нейросеть автоматически создаст структуру интерфейса. Также можно загрузить набросок или скриншот — AI преобразует его в редактируемый макет. Подходит для быстрого создания прототипов и лендингов без длительной работы в дизайнерских редакторах.

📌 Оставляю ссылочку: uizard.io

➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤7🔥7👎1
Collection expressions в C# 12: собираем коллекции без AddRange и Concat!

Часто нужно взять базовую коллекцию и добавить пару значений в начало или конец. Обычно для этого появляются AddRange, временные списки и много шума в коде.

Раньше приходилось собирать вручную:
var baseIds = new[] { 1, 2, 3 };

var ids = new List<int>();
ids.AddRange(baseIds);
ids.Add(10);
ids.Add(20);

var result = ids.ToArray();
Console.WriteLine(string.Join(", ", result));


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

В C# 12 появились collection expressions — можно “собрать” коллекцию прямо по месту:
int[] baseIds = [1, 2, 3];

int[] result = [..baseIds, 10, 20];
Console.WriteLine(string.Join(", ", result));


Здесь ..baseIds означает “вставь все элементы baseIds на это место”.

🔥 В итоге коллекции читаются как данные, а не как набор операций по сборке.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
👍 OverAPI — огромная база шпаргалок для программистов!

Здесь можно быстро найти краткие справочники по синтаксису, командам и ключевым возможностям разных языков, чтобы не тратить время на долгий поиск документации. На сайте есть подробные шпаргалки по C++ и C#: быстрые справочники по синтаксису, контейнерам, алгоритмам STL, .NET и другим вещам, которые постоянно используются в разработке.

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

➡️ C# Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤11🔥7
Collection expressions в C# 12: собираем коллекции без AddRange и Concat!

Часто нужно взять базовую коллекцию и добавить пару значений в начало или конец. Обычно для этого появляются AddRange, временные списки и много шума в коде.

Раньше приходилось собирать вручную:
var baseIds = new[] { 1, 2, 3 };

var ids = new List<int>();
ids.AddRange(baseIds);
ids.Add(10);
ids.Add(20);

var result = ids.ToArray();
Console.WriteLine(string.Join(", ", result));


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

В C# 12 появились collection expressions — можно “собрать” коллекцию прямо по месту:
int[] baseIds = [1, 2, 3];

int[] result = [..baseIds, 10, 20];
Console.WriteLine(string.Join(", ", result));


Здесь ..baseIds означает “вставь все элементы baseIds на это место”.

🔥 В итоге коллекции читаются как данные, а не как набор операций по сборке.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍3🔥3😁1
🐱 Отличная статья — про то, как перейти на Minimal API в ASP․NET Core без лишней боли!

В этой статье:

• Разберёшься, чем Minimal API отличается от привычных контроллеров и где он действительно удобнее;
• Поймёшь, какие плюсы даёт такой подход в реальном проекте, а где могут всплыть ограничения;
• Посмотришь на практические нюансы миграции и поймёшь, стоит ли переходить на него в своём коде.

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


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4👍3
👩‍💻 string vs StringBuilder без лишней магии!

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

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝19👍7❤6🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ Build Your Own X — освойте программирование, воссоздав любимые технологии с нуля!

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

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


➡️ C# Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍7🔥7