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
👩‍💻 Сканируем порты на удалённом хосте!

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

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

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

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


Можно легко усложнить: добавить логирование, аргументы командной строки и поддержку 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
❤5👍3🔥3
Что же выведет консоль?
Anonymous Quiz
21%
A
7%
B
51%
C
21%
D
🔥10❤4👍3
Null-conditional assignment на стероидах — безопасно присваиваем, если null!

Иногда нужно присвоить значение только в том случае, если переменная ещё не инициализирована, без громоздких if-проверок.

Новый синтаксис объединяет оператор ??= с безопасным навигацией ?., чтобы делать это «в один приём».

Объявляем переменные и подключаем пространство имён. Убедимся, что всё готово для работы:
using System;

string? userName = null;
string? environment = null;


Присваиваем значения только если null. Одной строкой даём переменным дефолтные значения:
// Присваиваем «Guest User», если userName == null
userName ??= "Guest User";

// Берём переменную окружения, если она определена, иначе «Development»
environment ??= Environment.GetEnvironmentVariable("ASPNET_ENVIRONMENT") ?? "Development";

// Выведем результат
Console.WriteLine($"👤 Пользователь: {userName}");
Console.WriteLine($"⚙️ Окружение: {environment}");


🔥 В пару строк вы избегаете лишних проверок и сразу получаете гарантированное значение без сторонних библиотек.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4❤3
👩‍💻 Управляй файлами, как профи!

Забудь о громоздких вызовах File — с FileInfo всё проще и нагляднее. Проверяй существование, копируй, удаляй и анализируй файлы через один объект.

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🤝13❤4👍3
👀 Как сразу проверить несколько свойств через is?

C# 9+ поддерживает property-patterns для валидации полей/свойств в одном выражении.

Создаём record с nullable Name и числовым Age.
record User(string? Name, int Age);
var user = new User("Alice", 22);


Проверяем оба условия и выводим результат:
if (user is { Age: >18, Name: not null }) Console.WriteLine($"{user.Name} – совершеннолетний"); else Console.WriteLine("Не прошёл проверку");


Age: >18 — relational pattern, проверяет, что число больше 18.
Name: not null — not pattern, гарантирует непустую строку.

🔥 Идеально для компактной валидации DTO, элегантной фильтрации LINQ и чистого кода без лишних переменных.

➡️ C# Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5❤4
👩‍💻 Кэшируем как профессионалы в .NET

Использование MemoryCache ускоряет работу приложений за счёт хранения часто запрашиваемых данных в оперативной памяти и минимизирует задержки при обращении к внешним сервисам.

В этом гайде:
• Хранит данные прямо внутри оперативной памяти приложения;

• Автоматически удаляет устаревшую информацию без вашего участия;

• Сокращает число частых обращений к внешним сервисам.


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

➡️ C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍5❤3🤝1
Парсим JSON в объект и обратно!

Сейчас научимся превращать JSON-строку в C#-объект и обратно. Это особенно полезно при работе с API, конфигами или внешними файлами, где данные приходят в текстовом формате.

Подключим нужные библиотеки — всё уже есть в стандартной библиотеке:
using System;
using System.Text.Json;


Допустим, у нас есть такой JSON:
{ "name": "Alice", "age": 30 }


Создадим класс, который соответствует структуре этого JSON. Названия свойств должны совпадать с ключами:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}


Теперь распарсим строку JSON и превратим её в объект Person:
string json = "{\"name\": \"Alice\", \"age\": 30}";
Person person = JsonSerializer.Deserialize<Person>(json);
Console.WriteLine($"Имя: {person.Name}, Возраст: {person.Age}");


А если нужно наоборот — превратить объект в JSON:
string newJson = JsonSerializer.Serialize(person);
Console.WriteLine(newJson);


Возможный результат при запуске:
Имя: Alice, Возраст: 30  
{"Name":"Alice","Age":30}


🔥 Таким образом ты можешь легко работать с данными в формате JSON — загружать их в программу или сохранять обратно.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤6🔥5
👩‍💻 Polly: защита сервиса от непогоды!

Когда внешние API дрожат, Polly превращает ваши вызовы в непотопляемые корабли, незаметно сглаживая сбои и сохраняя для пользователей ощущение спокойного моря.

В этой библиотеке:

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

• Избавляет разработчика от десятков ручных повторяющихся проверок

•
Сохраняет пользовательский опыт плавным даже при редких сбоях


Пусть ваш сервис говорит «шторм обойдён» вместо «ошибка 500» — внедрите Polly уже прямо сегодня.

➡️ C# Ready | #библиотека
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5🤝5❤2