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

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

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

РКН: https://clck.ru/3SBaT3
Download Telegram
👩‍💻 Погружаем в основы LINQ!

В этой шпаргалке вы познакомитесь с базовыми операторами LINQ для фильтрации, проекции и сортировки коллекций: от выбора элементов по условию и преобразования их в нужный формат до упорядочивания по разным ключам и «расплющивания» вложенных последовательностей.

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31🤝13👍8❤3
🔥17❤9👍3😁3🤝1
Экономьте аллокации с ValueTask!

Частые асинхронные вызовы с Task создают лишние объекты, а ValueTask поможет их избежать.

Объявляем обычный метод, возвращающий Task:
// Обычный Task<int>
async Task<int> GetValueAsync(bool cached) {
if (cached) return 42;
await Task.Delay(100);
return 42;
}


Меняем тип возвращаемого значения на ValueTask:
// ValueTask<int> для кеша
async ValueTask<int> GetValueValueAsync(bool cached) {
if (cached) return 42;
await Task.Delay(100);
return 42;
}


Сравниваем поведение при вызове:
// Вызов примеров
var r1 = await GetValueAsync(true);
var r2 = await GetValueAsync(false);
var v1 = await GetValueValueAsync(true);
var v2 = await GetValueValueAsync(false);
Console.WriteLine(r1 + r2);


🔥 Это устраняет аллокации при синхронном завершении и снижает нагрузку на сборщик мусора.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤7👍5
Как избавиться от бесконечных if (obj != null)?

Во вложенных моделях null-проверки быстро разрастаются:
string city;
if (user != null &&
user.Address != null &&
user.Address.City != null) {
city = user.Address.City;
} else {
city = "Не указан";
}


С null-операторами и pattern matching то же самое пишется компактно:
var city = user?.Address?.City ?? "Не указан";

if (user?.Manager is not null) {
Notify(user.Manager);
}


🔥 Так что, ?. безопасно проходит по цепочке, ?? подставляет значение по умолчанию, а is not null убирает лишние проверки.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤9👍5
👩‍💻 Ошибки — не конец программы!

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

В этом гайде:

• Покажем, как ловить только нужные ошибки;

•
Объясним, зачем сообщать о сбое понятно;

•
Научим защищать код от неожиданных ситуаций.


Работа с исключениями — это про надёжность, читаемость и уверенность в поведении твоего приложения.

➡️ C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝16🔥15❤8👍2
Меньше бойлерплейта с primary constructors в C# 12!

Часто сервисы и модели обрастают полями DI и свойствами — код пухнет. В .NET 8 можно объявить всё прямо в заголовке класса.

Было ― вручную пишем конструктор и поля:
public class UserService
{
private readonly ILogger<UserService> _logger;
private readonly IUserRepo _repo;

public UserService(ILogger<UserService> logger, IUserRepo repo)
{
_logger = logger;
_repo = repo;
}

public Task<User?> GetAsync(Guid id) => _repo.FindAsync(id, _logger);
}


Стало ― primary constructor + автоматические свойства:
public class UserService(ILogger<UserService> Logger, IUserRepo Repo)
{
public Task<User?> GetAsync(Guid id) => Repo.FindAsync(id, Logger);
}


🔥 Главное — primary constructors вырезают шаблонный код: меньше строк, чище классы, быстрее читается ревью.

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

Берём несколько строк с тратами, превращаем их в структуру и заставляем программу показать, какая категория незаметно съедает большую часть бюджета.

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

• Соберёшь простой отчёт о тратах прямо в консоли;

• Увидишь, на какие категории уходит больше всего денег;

• Почувствуешь, как сухие числа превращаются в понятную картину дня.


С такого мини-инструмента легко начать путь к более честному и осознанному ежедневному личному бюджету.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6❤5🤝2
👍29❤13🔥8