ch
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

前往频道在 Telegram

По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

显示更多

📈 Telegram 频道 C# (C Sharp) programming 的分析概览

频道 C# (C Sharp) programming (@csharp_ci) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 18 307 名订阅者,在 技术与应用 类别中位列第 7 338,并在 俄罗斯 地区排名第 36 903

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 18 307 名订阅者。

根据 12 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -16,过去 24 小时变化为 5,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 18.53%。内容发布后 24 小时内通常能获得 7.49% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 3 393 次浏览,首日通常累积 1 371 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 0
  • 主题关注点: 内容集中在 .net, api, логика, архитектура, string 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

凭借高频更新(最新数据采集于 13 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

18 307
订阅者
+524 小时
-77
-1630
帖子存档
#ПятничныйКвиз
#ПятничныйКвиз

🔧 Shift Left с архитектурным тестированием в .NET Что делать, чтобы ваш модульный (или монолитный) .NET-проект не превратилс
🔧 Shift Left с архитектурным тестированием в .NET Что делать, чтобы ваш модульный (или монолитный) .NET-проект не превратился в «болото кода» спустя пару месяцев? Поможет механизм architecture testing, который позволяет строго контролировать архитектуру прямо в CI-пайплайне. 🎯 Почему это важно • Технический долг неизбежен: быстрые фиксы, дедлайны, новые участники — архитектура разваливается • Architecture tests — это сдвиг влево, позволяющий обнаруживать нарушения структуры на ранних этапах разработки • Это как страховка: если кто-то случайно нарушил архитектурные правила — сборка падает 🧩 Как это работает (на примере NetArchTest)

// Проверка: Ticketing-модуль не должен зависеть от Users, Events и т.д.
Types.InAssemblies(ticketingAssemblies)
  .That().DoNotHaveDependencyOnAny(otherModules)
  .Should().NotHaveDependencyOnAny(otherModules)
  .GetResult()
  .ShouldBeSuccessful();

// Проверка Clean Architecture:
Types.InAssembly(DomainAssembly)
  .Should().NotHaveDependencyOn(ApplicationAssembly.GetName().Name)
  .GetResult()
  .ShouldBeSuccessful();
✅ Можно проверять любой дизайн: • Модули — должны вызывать друг друга только через public API • Слои Clean Architecture — например, Domain не должен ссылаться на Infrastructure • Правила дизайна — все IDomainEvent должны быть sealedКонвенции имен — например, все CommandHandler'ы должны оканчиваться на CommandHandler 🛠 Итого: • Architecture tests — не просто инструмент, а средство контроля архитектуры • Работает как компилятор для архитектурных правил — это гарантирует соблюдение структуры • Идеально подходит для modular monolith, Clean Architecture и крупных систем • Сдвигает баги из продакшна в CI-пайплайн 🧭 Как начать: 1. Выберите библиотеку (ArchUnitNET, NetArchTest, …) 2. Напишите пару тестов — например, на зависимости между слоями 3. Интегрируйте в CI (GitHub Actions, Azure Pipelines, TeamCity и др.) 4. Соблюдайте — и архитектура останется в целости 🎯 Ключевой вывод С architecture testing вы не просто «следуете стандартам» — вы автоматизируете дизайн, позволяя команде фокусироваться на логике, а не на структуре. Shift Left не для QA — теперь и архитектура под защитой. 📚 Подробнее

🤖 Два подхода DDD: Rich Model vs Anemic Model Приглашаем на открытый урок. 🗓 24 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамка
🤖 Два подхода DDD: Rich Model vs Anemic Model  Приглашаем на открытый урок. 🗓 24 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «C# Developer Professional». На вебинаре: ✔️  Разбор концепций: чем анемичная модель (Anemic Model) отличается от богатой (Rich Model) ✔️  Рассмотрим, когда что выбрать ✔️  Оценим преимущества и недостатки каждой из моделей Кому будет полезно: - Всем, кто стремится глубже понять DDD - .NET-разработчикам, проектирующим сложные системы с долгосрочной поддержкой - Студентам, изучающим паттерны проектирования и чистую архитектуру Чему научатся участники по итогам вебинара: - Понимать, когда код попадает в антипаттерн Anemic Model - Проектировать сущности с бизнес-логикой внутри - Выбирать компромиссы: скорость разработки (Anemic) vs гибкость/безопасность (Rich). 🔗 Ссылка на регистрацию: https://otus.pw/58s6/ #реклама О рекламодателе

🏗️ Value Objects и DDD в ASP.NET Core — подробный гайд от Telerik В новом блоге Telerik разбирается ключевой принцип Domain-
🏗️ Value Objects и DDD в ASP.NET Core — подробный гайд от Telerik В новом блоге Telerik разбирается ключевой принцип Domain-Driven Design (DDD)Value Objects — и как грамотно реализовать их в ASP.NET Core. 📌 Что такое Value Object: • Объект без идентичности • Сравнивается по значению, а не по ссылке • Иммутабельный по своей сути • Является частью бизнес-логики (например, Money, Email, `Address`) 🛠 В статье: • Почему использовать Value Objects вместо простых типов • Как реализовать их в .NET (структура, инварианты, валидация) • Примеры кода, включая record, struct и кастомные value equality • Как внедрять их в Entity Framework Core без боли 💡 Отличный материал для тех, кто хочет строить чистую доменную модель и развивать архитектурное мышление. 🔗 Читай статью: https://www.telerik.com/blogs/domain-driven-design-principles-value-objects-aspnet-core #DDD #ASPNetCore #ValueObjects #SoftwareArchitecture #Telerik

Высшее на новом уровне: онлайн-магистратура от Яндекса и ИТМО. Здесь фундаментальные знания и практика для карьерного роста,
Высшее на новом уровне: онлайн-магистратура от Яндекса и ИТМО. Здесь фундаментальные знания и практика для карьерного роста, а ещё — учёба, которую можно совмещать с работой и жизнью. IT‑специальность с экспертизой Яндекса + диплом магистра гособразца = новая ступень в карьере. Приёмная кампания уже идёт! Все подробности — на дне открытых дверей: — Разбор совместной программы с ИТМО. — Всё о формате прикладной онлайн-магистратуры: что взяли от классического высшего, а что добавили из опыта специалистов Яндекса. — Общение с экспертами из вуза и ответы на вопросы. — Всё про поступление: сроки, экзамены, документы, оплата и образовательный кредит. ▷ Ждём вас 26 июня в 19:00 мск.

🧠 C#‑задача с подвохом: как работает `foreach` на изменяемой коллекции? Представим, у нас есть такой код:

List<int> numbers = new List<int> { 1, 2, 3, 4 };

foreach (var n in numbers)
{
    Console.WriteLine(n);
    if (n == 2)
        numbers.Remove(n); // 😬
}
Вопрос: Что произойдёт при запуске? 🔍 Разбор На первый взгляд — ничего особенного. Но при запуске вы получите:
1
2
Unhandled exception. System.InvalidOperationException:
Collection was modified; enumeration operation may not execute.
💣 Почему так? Потому что `foreach` в C# использует **итератор (Enumerator)**, который **не допускает изменений коллекции во время прохода**. Это встроенная защита от непредсказуемых багов и гонок. ✅ Как можно обойти? Вариант 1 — использовать for вместо foreach:

for (int i = 0; i < numbers.Count; i++)
{
    if (numbers[i] == 2)
    {
        numbers.RemoveAt(i);
        i--; // ⚠️ Обязательно откатить индекс!
    }
}
Вариант 2 — создать копию коллекции:

foreach (var n in numbers.ToList())
{
    if (n == 2)
        numbers.Remove(n);
}
🧠 Вывод: В C# `foreach` нельзя использовать на коллекциях, которые вы планируете менять в теле цикла. Это распространённая ловушка даже для опытных разработчиков. 📎 Советы: - При изменениях — лучше for или .ToList() - Внимательно читайте исключения: InvalidOperationException — ваш друг в отладке Поделитесь с коллегами — пусть никто не попадается 😊 @csharp_ci

🕹️ NET-NES — эмулятор легендарной NES, написанный на C# и Raylib После создания собственного эмулятора GameBoy (**CODE-DMG**
🕹️ NET-NES — эмулятор легендарной NES, написанный на C# и Raylib После создания собственного эмулятора GameBoy (**CODE-DMG**), следующий шаг был очевиден — NES. Консоль, оставившая след не только в истории видеоигр, но и в электронике, вдохновила на создание нового проекта — NET-NES. 🎮 Что такое NET-NES? Это NES-эмулятор, написанный на C# с использованием Raylib. Он уже способен запускать множество классических хитов от Nintendo. 📜 Немного истории: • NES (Nintendo Entertainment System) — вышла в Японии как FamiCom в 1983 году • В 1985 появилась в Северной Америке, где спасла индустрию после видеоигрового краха 1983 года • Продавалась как "игрушка" — и изменила всё 🧠 Аппаратная часть NES: • 8-битный CPU Ricoh 2A03 (~1.79 МГц), основанный на MOS 6502 • Встроенный APU (аудио) • Видео: Ricoh 2C02 — вывод 256×240, палитра 64 цвета • 2 КБ RAM + 2 КБ VRAM • ROM‑картриджи с мапперами для расширения памяти и графики 🛠️ Почему C# и Raylib? • Потому что C# — удобен, современен и любим • Raylib — весёлый, минималистичный и идеально подходит для 2D-рендера • А название NET-NES — от .NET и NES, звучит круто 😄 🔗 GitHub: github.com/Paulescu/NET-NES #nes #dotnet #emulation #gamedev #csharp #retrogaming @csharp_ci

🔥 Успех в IT = скорость + знания + окружение Здесь ты найдёшь всё это — коротко, по делу и без воды. Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты! AI: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Собеседования DS: t.me/machinelearning_interview C++ t.me/cpluspluc Docker: t.me/DevopsDocker Хакинг: t.me/linuxkalii Devops: t.me/DevOPSitsec Data Science: t.me/data_analysis_ml Javascript: t.me/javascriptv C#: t.me/csharp_1001_notes Java: t.me/java_library Базы данных: t.me/sqlhub Python собеседования: t.me/python_job_interview Мобильная разработка: t.me/mobdevelop Golang: t.me/Golang_google React: t.me/react_tg Rust: t.me/rust_code ИИ: t.me/vistehno PHP: t.me/phpshka Android: t.me/android_its Frontend: t.me/front Big Data: t.me/bigdatai МАТЕМАТИКА: t.me/data_math Kubernets: t.me/kubernetc Разработка игр: https://t.me/gamedev Haskell: t.me/haskell_tg Физика: t.me/fizmat 💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy 😆ИТ-Мемы: t.me/memes_prog 🇬🇧Английский: t.me/english_forprogrammers 🧠ИИ: t.me/vistehno 🎓954ГБ ОПЕНСОРС КУРСОВ: @courses 📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!

🚀 Вышел .NET 10 Preview 5 — с улучшениями на всех фронтах! 🛠️ В этом обновлении Microsoft прокачала: • Runtime — улучшена п
🚀 Вышел .NET 10 Preview 5 — с улучшениями на всех фронтах! 🛠️ В этом обновлении Microsoft прокачала: • Runtime — улучшена производительность и управление памятью • C# — новые языковые фичи для более выразительного кода • ASP.NET Core — оптимизация рендеринга и поддержки HTTP • Blazor — упрощена работа с интерактивными компонентами • MAUI — ускорены сборки и улучшена поддержка платформ • + расширены инструменты диагностики и безопасности ✅ Почему стоит обратить внимание Серьёзные улучшения в производительности и безопасность Новые фичи как в Runtime, так и в C#, веб-фреймворках и UI (MAUI) Продолжение активного развития с учётом обратной связи сообщества 📌 Подробности 📌 Скачать .NET 10 уже сейчас выглядит как одно из самых амбициозных обновлений в экосистеме. @csharp_ci

🔍 Что под капотом у SourceForge: полный стек open-source технологий SourceForge.net — один из старейших хабов для open-source проектов (основан в 1999), до сих пор остаётся важной платформой для размещения, разработки и распространения ПО. Но что делает его таким устойчивым и масштабируемым? Компания BlackSlate раскрыла подробности о том, на чём построен SourceForge — и это настоящее пособие по продвинутой архитектуре на Python и open-source инструментах. 🧠 Архитектура SourceForge.net:Allura — основной backend-фреймворк, написанный на Python. Он отвечает за всё: трекеры задач, Git/SVN, вики, форумы и многое другое. Код — доступен на GitHub. ⚙️ Технологии под капотом: 🟣 Python — основной язык, на котором написана серверная часть. 🗄 MongoDB — NoSQL база данных для хранения проектов, тикетов, пользователей. → ORM: Ming + PyMongo 🔍 Поиск — реализован с помощью Apache Solr + pysolr → Поддержка полнотекстового поиска и фильтрации по метаданным 📬 Асинхронные задачи и очереди:RabbitMQ + Kombu — используются для обработки фонов задач 🛠 Git и SVN:GitPython — работа с Git-репозиториями → pysvn — управление Subversion 🧩 Веб-фреймворки и middleware: - TurboGears + Pylons — основа веб-интерфейса - Paste — WSGI-мидлвари - Beaker — управление сессиями и кэшами 🎨 UI и шаблоны: - Jinja2 — шаблонизатор - Pygments — подсветка синтаксиса в веб-интерфейсе 📦 Окружение и тестирование: - Vagrant — управление виртуальными dev-средами - FUSE — файловая система для работы с вложениями и архивами 📌 Почему это важно? SourceForge — это пример того, как построить надёжную, масштабируемую платформу, полностью на open-source стекe. Без дорогостоящих проприетарных решений — и при этом с полной функциональностью для миллионов проектов и разработчиков. 📎 Полный список технологий: https://www.blackslate.io/tech-stack/opensource-used-in-sourceforge Если вы создаёте свою платформу, маркетплейс, dev-инструмент или систему управления проектами — архитектура SourceForge может стать отличным референсом. @csharp_ci

🧩 Blazor и Dependency Injection: лучшие практики и примеры В Blazor встроена мощная система Dependency Injection (DI), котор
🧩 Blazor и Dependency Injection: лучшие практики и примеры В Blazor встроена мощная система Dependency Injection (DI), которая помогает создавать модульные и легко тестируемые приложения. Недавно на [Telerik Blog](https://www.telerik.com/blogs/blazor-basics-dependency-injection-best-practices-use-cases) вышла отличная статья с практическими советами по использованию DI в Blazor. 🔧 Типы внедрения зависимостей: - Constructor Injection: предпочтительный способ для обязательных зависимостей. - Property Injection: используется для опциональных зависимостей с помощью @inject или [Inject]. - Service Locator: избегайте этого подхода, так как он усложняет тестирование и нарушает принципы DI. 🔄 Варианты времени жизни сервисов: - Singleton: один экземпляр на всё приложение. - Scoped: один экземпляр на сессию пользователя. - Transient: новый экземпляр при каждом запросе. 💡 Рекомендации: - Используйте интерфейсы для определения зависимостей. - Избегайте внедрения Scoped сервисов в Singleton сервисы. - Для управления временем жизни сервисов используйте OwningComponentBase. 📚 Примеры использования: - Внедрение HttpClient для выполнения HTTP-запросов. - Использование NavigationManager для управления навигацией. - Внедрение IJSRuntime для взаимодействия с JavaScript. 📖 Подробнее читайте в статье @csharp_ci

Давно хотели освоить программирование, но вас останавливала нехватка времени или строгие дедлайны? Тогда советуем обратить вн
+4
Давно хотели освоить программирование, но вас останавливала нехватка времени или строгие дедлайны? Тогда советуем обратить внимание на бесплатные курсы Яндекс Лицея по Python, Go и C++ для начинающих. Заниматься на них можно когда и где угодно, ведь уроки доступны онлайн и в них нет дедлайнов! Вас ждут: ✅ Качество: занятия разработаны практикующими экспертами Яндекса. ✅ Свобода: пользуйтесь автоматической проверкой решений и задавайте вопросы через поддержку. ✅ Перспективы: после завершения вы получите уверенную базу для дальнейшего роста, а также сертификат, который пригодится при поступлении в Яндекс Лицей. Не откладывайте на потом — выберите курс и зарегистрируйтесь на сайте!

🧠 Задача для .NET разработчиков: «Загадочная утечка памяти в ASP.NET Core приложении» 🧩 Уровень: Senior .NET / Backend Engineer 🎯 Цель: Найти и устранить причину роста памяти без падений и исключений 📍 Ситуация: У вас — высоконагруженное API на ASP.NET Core (.NET 8), работающее под Linux в контейнере. Сервис обрабатывает тысячи запросов в минуту. Мониторинг показывает: - Память растёт стабильно, но не освобождается - GC работает, но не очищает выделенную память - dotnet-counters показывает рост в LOH (Large Object Heap) - Приложение не падает, но хост начинает свапать и тормозить - При перезапуске — память очищается, но через 2–3 часа снова заполняется ❗ В логах — тишина, ошибок нет. Библиотеки: Newtonsoft.Json, HttpClient, MemoryCache, EF Core. --- 🧩 Твоя задача: 1. Почему .NET GC может не освобождать LOH, даже при работе GC? 2. Какие действия вызывают накопление в LOH? 3. Как можно отследить, какие объекты скапливаются в памяти? 4. Чем опасен повторный вызов HttpClient или StringBuilder без очистки? 5. Как корректно использовать MemoryCache, чтобы избежать утечек? 💡 Подсказка: - LOH начинается с объектов > 85,000 байт - Часто виноваты: большие строки, сериализация, `ToString()`, `MemoryStream`, `Image`, `byte[]` - `MemoryCache` может хранить сильные ссылки бесконечно, если не задано время жизни - Частое создание `HttpClient` — может удерживать сокеты в TIME_WAIT и загонять GC в ступор 🛠 Решение: 1. Запускаем профилировщик:

   dotnet-gcdump collect -p <PID>
   dotnet-gcdump analyze dump.gcdump
   
2. Смотрим типы с самым большим retained size: List<string>, byte[], MemoryStream → В коде — сериализация в JSON огромных объектов без ограничения глубины 3. Находим участок с JsonConvert.SerializeObject(hugeObject) без MaxDepth 4. Исправления: - Добавить настройки сериализации:

     new JsonSerializerSettings { MaxDepth = 5, ReferenceLoopHandling = Ignore }
     
- Ограничить MemoryCache по размеру:

     new MemoryCache(new MemoryCacheOptions { SizeLimit = 100_000_000 });
     
- Использовать HttpClientFactory вместо new HttpClient() на каждый запрос 5. Альтернатива: перейти на System.Text.Json с Utf8JsonWriter — меньше аллокаций 📌 Вывод: Даже без явных ошибок .NET-приложение может стабильно "утекать" в LOH — через сериализацию, кэш или неправильную работу с потоками. Только анализ дампа памяти и правильная конфигурация GC и кешей помогут найти такие проблемы. @csharp_ci

Что выведет на экран это код?
Anonymous voting

#ПятничныйКвиз
#ПятничныйКвиз

🚀 Как ускорить ASP.NET Core API: 6 рабочих приёмов Если ваш API на .NET тормозит под нагрузкой — вот краткий гайд, как прока
🚀 Как ускорить ASP.NET Core API: 6 рабочих приёмов Если ваш API на .NET тормозит под нагрузкой — вот краткий гайд, как прокачать его производительность. ): ⚡ 1. Async/await везде Избегай .Result и .Wait() — они блокируют потоки. Асинхронность улучшает масштабируемость. 📉 2. Добавь пагинацию Не отдавай 10 000 записей за раз. Параметры page и pageSize — must-have для любых списков. 🚫 3. Используй `AsNoTracking` в EF Core Если данные не редактируются — отключай отслеживание изменений. Это экономит память и ускоряет запросы. 📦 4. Включи сжатие ответов Подключи Gzip или Brotli, особенно если отдаёшь большие JSON-объекты. 🧠 5. Кэшируй часто запрашиваемые данные Используй IMemoryCache или Redis — уменьши нагрузку на базу. 📤 6. Передавай DTO, а не сущности Не светите внутренними моделями. Создавай DTO и отправляй только нужные поля. 🧪 Подробнее с примерами кода — в оригинальном сайде: https://dev.to/this-is-learning/tips-for-improving-api-performance-in-aspnet-core-n4o @csharp_ci

🔐 AuthenticationProperties в ASP.NET Core — недооценённый, но важный механизм Если вы используете куки или OpenID Connect в
🔐 AuthenticationProperties в ASP.NET Core — недооценённый, но важный механизм Если вы используете куки или OpenID Connect в ASP.NET Core, то наверняка сталкивались с объектом AuthenticationProperties. Он не просто "дополнительные параметры" — это мощный инструмент управления поведением аутентификации. 💡 Что можно сделать с AuthenticationProperties: • ⏳ Установить срок действия куки:

new AuthenticationProperties { ExpiresUtc = DateTimeOffset.UtcNow.AddHours(1) }
• ↩️ Указать URL возврата после логина:

new AuthenticationProperties { RedirectUri = "/dashboard" }
• 🧭 Добавить временные метки, элементы состояния, флаги: Например, IsPersistent, IssuedUtc, AllowRefresh, и кастомные значения. • 🧠 Используется в: HttpContext.SignInAsync(...) ChallengeAsync(...) для OIDC редиректах после логина/логаута 🛠️ Это ключевой объект, если вы хотите более гибко управлять логикой входа, выхода и жизненным циклом сессии в ASP.NET Core. 📎 Полный разбор: https://blog.duendesoftware.com/posts/20250527-the-role-of-authenticationproperties-in-aspnet-core @csharp_ci

Какой язык более читаемый: C# или Python? Программисты забивают на безопасность? Обсуждаем эти и другие холиварные темы в шоу Контура «Согласен — не согласен», где сталкиваются два представителя разных IT-профессий, каждый со своим мнением и бэкграундом. Cмотрите самые горячие выпуски🔥 ➡️ С# vs Python-разработчики: какой язык круче ➡️ Джун vs cеньор-разработчики: нужны ли джуны в бигтехе ➡️ Бэкендер vs фронтендер: кто больше страдает ➡️ Программист vs учитель информатики: делать ли программирование обязательным в школе ➡️ Безопасник vs программист: кто должен думать об уязвимости продукта Новые дискуссии выходят в канале @KonturTech каждые две недели. Будет эмоционально, но с уважением. 16+. Реклама. АО «ПФ «СКБ Контур», ОГРН 1026605606620. 620144, Екатеринбург, ул. Народной Воли, 19А. Erid: 2SDnjcTtt77

🔥 Новая эра C# — dotnet run app.cs в .NET 10 Preview 4 Теперь вы можете запускать C#-файлы напрямую, без создания проекта: dotnet run hello.cs 📌 Что нового: Без .csproj — пишите и запускайте C#-код как скрипты. Директивы в файле: #:package — подключение NuGet-пакетов. #:sdk — выбор SDK (например, для ASP.NET). #:property — установка свойств сборки. Поддержка shebang — делайте .cs-файлы исполняемыми скриптами в Unix-системах. 🛠 Преимущества: Быстрый старт без лишних настроек. Идеально для прототипирования и обучения. Лёгкий переход от скрипта к полноценному проекту с dotnet project convert. 🔗 Подробнее: devblogs.microsoft.com/dotnet/announcing-dotnet-run-app @csharp_ci

Что выведет на экран это код?
Anonymous voting