Task.WhenAll помогает запускать независимые задачи одновременно и получать результат максимально быстро.Что важно знать:
• Задачи стартуют сразу;
• Итог ждёт всех;
• Ошибки приходят вместе.
Это простой способ ускорить I/O-операции, если между задачами нет зависимости и нужен результат быстрее.
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
С выходом C# 11 стали доступны списковые паттерны (
*list patterns*), которые позволяют сопоставлять коллекции по элементам, как с начала, так и с конца — просто, читаемо и без лишних условий.Первое условие проверяет, что массив начинается на
1, 2, заканчивается 10, и содержит что угодно посередине (..).Второе — определяет, что точка находится в первой четверти, если обе координаты больше нуля.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍8🔥3
Проверяем, какие порты открыты у сервера, чтобы найти активные службы и баги.
Что важно знать:
• Таймаут спасает от долгих зависших подключений;
• Проверку лучше запускать сразу на все порты;
• Коллекция результатов должна быть потокобезопасной.
Можно легко усложнить: добавить логирование, аргументы командной строки и поддержку UDP.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6🔥5🤝4
🔥10❤4👍3
Null-conditional assignment на стероидах — безопасно присваиваем, если null!
Иногда нужно присвоить значение только в том случае, если переменная ещё не инициализирована, без громоздких
Новый синтаксис объединяет оператор
Объявляем переменные и подключаем пространство имён. Убедимся, что всё готово для работы:
Присваиваем значения только если null. Одной строкой даём переменным дефолтные значения:
🔥 В пару строк вы избегаете лишних проверок и сразу получаете гарантированное значение без сторонних библиотек.
➡️ C# Ready | #практика
Иногда нужно присвоить значение только в том случае, если переменная ещё не инициализирована, без громоздких
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}");
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🤝13❤4👍3