uz
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish

📈 Telegram kanali C# (C Sharp) programming analitikasi

C# (C Sharp) programming (@csharp_ci) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 18 126 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 044-o'rinni va Rossiya mintaqasida 36 287-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 18 126 obunachiga ega bo‘ldi.

30 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -65 ga, so‘nggi 24 soatda esa 0 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 15.36% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 7.44% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 2 784 marta ko‘riladi; birinchi sutkada odatda 1 349 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 0 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent .net, api, логика, архитектура, string kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Yuqori yangilanish chastotasi (oxirgi ma’lumot 31 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

18 126
Obunachilar
Ma'lumot yo'q24 soatlar
-117 kunlar
-6530 kunlar
Postlar arxiv
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь: Python: t.me/pythonl Linux: t.me/linuxacademiya Собеседования DS: t.me/machinelearning_interview Нерйросети t.me/ai_machinelearning_big_data 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_ci Java: t.me/javatg Базы данных: 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

✔️ Задача. Что выведет на консоль этот пример на C#?

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var funcs = new List<Func<int>>();

        // Первая группа лямбд
        for (int i = 0; i < 4; i++)
        {
            funcs.Add(() => i * i);
        }

        Console.Write("Squares: ");
        foreach (var f in funcs)
            Console.Write(f() + " ");

        Console.WriteLine();

        // Вторая группа лямбд с копией переменной
        funcs.Clear();
        for (int i = 0; i < 4; i++)
        {
            int j = i;
            funcs.Add(() => j * j);
        }

        Console.Write("SquaresWithCopy: ");
        foreach (var f in funcs)
            Console.Write(f() + " ");
    }
}
Ответ: Squares: 16 16 16 16 SquaresWithCopy: 0 1 4 9 Объяснение Первая группа лямбд Лямбды захватывают переменную i по ссылке. К моменту, когда мы их вызываем в foreach, цикл уже завершился, поэтому i == 4. Каждая лямбда вычисляет 4 * 4 → 16. Вторая группа лямбд Внутри цикла для каждого значения i создаётся новая локальная переменная j, и лямбда захватывает именно её. При первой итерации j = 0, при второй j = 1 и т. д. Поэтому j * j даёт 0, 1, 4, 9 соответственно. Такой приём (захват локальной копии переменной) позволяет избежать «одинообразного» результата и сохранить значение каждой итерации.

Иди на дата саентиста, там вакансии с ЗП от 300 000₽ Ага, только тебя завалят на первых же задачах с LeetCode. Сотни ребят каждый день сталкиваются с тем, что без подготовки и понимания алгоритмов пройти техническое собеседование — это как пытаться собрать IKEA без инструкции. В этом деле важен опыт: гляньте канал Глеба Михайлова, он прошел больше сотни технических собеседований (съел на этом всех собак 🐕🍽). — Работал в Альфе, Сбере, Ростелекоме — 5 лет являлся наставником в Яндекс.Практикуме — Знает все подводные камни тех. собеседований в ТОП компании Кто, как не он, знает, как пройти техсобесы и не сойти с ума? Если ты хочешь левел-апнуться, больше зарабатывать и от души поржать над байками о работе в Сбере и Альфе от дата саентиста, который вырос из просто аналитика — подписывайся: @mikhaylovgleb Реклама

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

#ПятничныйКвиз #ЭтоДолженЗнатьКаждый
#ПятничныйКвиз #ЭтоДолженЗнатьКаждый

🖥 Wexflow — это мощная платформа для автоматизации рабочих процессов с открытым исходным кодом. Она позволяет автоматизирова
🖥 Wexflow — это мощная платформа для автоматизации рабочих процессов с открытым исходным кодом. Она позволяет автоматизировать задачи, такие как обработка файлов, отправка уведомлений, резервное копирование, интеграция с различными API и многое другое 🌟 Wexflow обладает рядом функций, включая интеграцию с базами данных и облачными сервисами, поддержку различных форматов данных и протоколов, а также собственным приложением для Android! 🔐 Лицензия: MIT 🖥 Github @csharp_ci

Реальные проекты и нетворкинг с профи: Летняя школа бэкенд‑разработки Яндекса открыла набор Начинающие бэкендеры, есть планы
Реальные проекты и нетворкинг с профи: Летняя школа бэкенд‑разработки Яндекса открыла набор Начинающие бэкендеры, есть планы на лето? Если уже умеете писать читаемый код в Python, Java или C++ и разбираетесь в алгоритмах, Летняя школа бэкенда Яндекса — ваш шанс прокачаться в разработке высоконагруженных сервисов. Вы получите уникальный опыт, работая вместе с ведущими специалистами компании. Как проходит обучение: — со 2 июня по 27 июля — онлайн-лекции, семинары и практические задания — с 28 июля по 24 августа — разработка реальных проектов офлайн или онлайн Вас ждут: — работа в фулстек-командах в коворкингах Яндекса — лекции от специалистов компании в летнем лектории — возможность стать частью команды и получить офер: больше половины выпускников становятся стажерами или сотрудниками компании Школа бесплатная, но нужно пройти отбор. Отправляй заявку до 27 апреля!

🖥 TinyHelpers — это библиотека, разработанная Марко Минервой, которая содержит коллекцию часто используемых вспомогательных
🖥 TinyHelpers — это библиотека, разработанная Марко Минервой, которая содержит коллекцию часто используемых вспомогательных методов и классов для .NET! Цель проекта — избежать дублирования кода, предоставляя разработчикам готовые решения для повседневных задач. 🔐 Лицензия: MIT 🖥 Github @csharp_ci

⚙️Уже работаете с Rust, но хотите эффективно интегрировать его с другими языками? Или интересуетесь, как устроен процесс сбор
⚙️Уже работаете с Rust, но хотите эффективно интегрировать его с другими языками? Или интересуетесь, как устроен процесс сборки и линковки в этом языке? 🗓На открытом вебинаре 24 апреля в 20:00 мск мы подробно разберем, как собирать и линковать библиотеки в Rust, как использовать Rust-библиотеки в других языках, а также реализуем Си ABI (Application Binary Interface). Вы получите знания, которые помогут вам повысить производительность ваших проектов и интегрировать Rust в существующие решения. 👨‍💻Урок будет полезен всем, кто хочет углубить свои знания в Rust, повысить квалификацию и навыки работы с библиотеками и системами. Вы сможете применять полученные знания в реальных проектах. 👉Присоединяйтесь к открытому вебинару и получите скидку на большое обучение «Rust Developer. Professional»: https://otus.pw/ATsJ/ Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963

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

#ПятничныйКвиз #МыЗнаемТолкВИзвращениях
#ПятничныйКвиз #МыЗнаемТолкВИзвращениях

Что выведет следующий код на C#?

using System;

class Program {
    static void Main() {
        int a = 1000;
        int b = 1000;

        object x = a;
        object y = b;

        Console.WriteLine(x == y);          // #1
        Console.WriteLine(x.Equals(y));     // #2
    }
}
🔢 Варианты ответа: A)

True
B)

False
C)

True
D)

False
Правильный ответ: C 💡 Почему? - x и y — boxed значения типа int, то есть ссылки на два разных объекта в куче. - x == y сравнивает ссылки, а не значения → False. - x.Equals(y) вызывает метод Equals для int, который сравнивает значения → True. 📌 Подвох — в различии == и .Equals() при использовании упакованных типов. @csharp_ci

❓Сталкиваетесь с задачами, когда вам нужно выбрать лучший алгоритм, но не понимаете, как анализировать их сложность? Ваш код
Сталкиваетесь с задачами, когда вам нужно выбрать лучший алгоритм, но не понимаете, как анализировать их сложность? Ваш код может быть медленным или неэффективным, и вы не знаете, как это исправить?  📗На открытом вебинаре 21 апреля в 20:00 мск вы освоите важные инструменты для анализа сложности алгоритмов, улучшите свой навык решения алгоритмических задач и на примере простых алгоритмов сортировки и увидите разницу при применении алгоритмов разной степени сложности. ➡️Регистрируйтесь прямо сейчас и получите скидку на большое обучение «C# Developer» по промокоду SHARP_SPEC_4: https://otus.pw/rKVNe/?erid=2W5zFJa8xsi Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

💡 Задача: Загадочный Кэш У тебя есть метод, который возвращает последовательность чисел, вычисляемую с задержкой (например, чтение из удалённого ресурса):

public static IEnumerable<int> GetSlowData()
{
    Console.WriteLine("Fetching data...");
    yield return 1;
    Thread.Sleep(1000);
    yield return 2;
    Thread.Sleep(1000);
    yield return 3;
}
Теперь тебе нужно реализовать метод ProcessData(), который: Вызывает GetSlowData() один раз. Проходит по данным дважды: сначала фильтрует только чётные, потом считает сумму всех. Не должен повторно "запрашивать" данные (то есть Fetching data... должен выводиться один раз). Не должен использовать ToList(), ToArray() или другие методы, загружающие всё в память явно. 🧠 Вопрос с подвохом: Как реализовать ProcessData()? Напиши реализацию:

public static void ProcessData()
{
    // твой код здесь
}
🔎 Подсказка Если ты просто используешь IEnumerable<int> и дважды к нему обращаешься — будет два запроса. Но есть один способ реализовать ленивое кэширование, не загружая всё в память сразу и не повторяя yield return. Решение: Если ты просто напишешь вот так: ```csharp var data = GetSlowData(); var evens = data.Where(x => x % 2 == 0); var sum = data.Sum();``` то GetSlowData() будет вызван дважды, потому что IEnumerable ленивый — и при каждом новом foreach начинается всё заново. Это видно по двойному выводу Fetching data.... 🧠 Цель: пройтись по данным один раз, кэшируя элементы "на лету", и позволить другим перечислениям работать без повторного получения. ✅ Решение: Используем ленивый кеш — с помощью кастомного итератора ```csharp public static void ProcessData() { var cached = new MemoizedEnumerable<int>(GetSlowData()); var evens = cached.Where(x => x % 2 == 0); var sum = cached.Sum(); Console.WriteLine("Even numbers: " + string.Join(", ", evens)); Console.WriteLine("Sum: " + sum); }``` А вот реализация ленивого кеширующего MemoizedEnumerable<T>: ```csharp public class MemoizedEnumerable<T> : IEnumerable<T> { private readonly IEnumerator<T> _source; private readonly List<T> _cache = new(); private bool _sourceFinished = false; public MemoizedEnumerable(IEnumerable<T> source) { _source = source.GetEnumerator(); } public IEnumerator<T> GetEnumerator() { int index = 0; while (true) { if (index < _cache.Count) { yield return _cache[index]; } else { if (_sourceFinished || !_source.MoveNext()) { _sourceFinished = true; yield break; } _cache.Add(_source.Current); yield return _source.Current; } index++; } } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); }``` 🧪 Что происходит MemoizedEnumerable запоминает каждый элемент один раз при первом проходе. Следующие проходы используют кэш. Fetching data... будет вызван только один раз. 💥 Подвох Большинство подумает, что IEnumerable можно безопасно переиспользовать без сайд-эффектов. Но не тут-то было: без кэширования yield выполнится дважды. Многие Middle+ разработчики ошибаются именно тут.

Highload буткемп: Системный дизайн, Производительность и Масштабирование Приглашаем на курсы для прокачки навыков архитектора
Highload буткемп: Системный дизайн, Производительность и Масштабирование Приглашаем на курсы для прокачки навыков архитектора и проектировщика на весеннем highload-потоке от DevHands. 🌐 Приходите на уникальный образовательный трек без отрыва от работы (занятия вечером), в рамках которого вы: 🤩 изучите ключевые хайлоад-паттерны и получите навыки проектирования систем с миллионной аудиторией (балансировка, масштабирование, высокая доступность, шардинг, CAP/PACELS, транзакционные очереди и многое другое) 🤩 поупражняетесь в системном дизайне и проектировании, и получите живую обратную связь на реальных задачах: магазин/маркетплейс, объявления, соцсети, такси/доставка и тд. 🤩 погрузитесь в highload максимально, при желании в первый же день получите в управление свою инфраструктуру, попробуете “выжать” 100K RPS из своих сервисов, получите уникальный опыт работы с кластерными решениями - Redis, SPQR, CockroachDB 🤩 научитесь планировать нагрузку и связывать бизнес-показатели с нефункциональными требованиями к системе 🤩 попрактикуетесь в проведении и прохождения секций системного дизайна на интервью Только «живые» онлайн-сессии: лекции, брейнштормы, презентации домашних проектов. 🗓 Старт потока 22 апреля, изучайте программу и записывайтесь: 🤩 Буткэмп “Производительность и масштабируемость” для тех, кто хочет поработать с собственной инфрой 🤩 Курс “Системный дизайн высоконагруженных проектов” для тех, кто хочет только практику проектирования “у доски” 🥸 Кто мы: R&D-центр Devhands, основатель и автор курса Алексей Рыбак, ex-СТО Badoo и Yum! Brands, член программного комитета Highload. Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqwqhKdT

🖼 ImageSharp — мощная библиотека для обработки изображений на C# (.NET) ✅ Поддержка форматов PNG, JPEG, GIF, BMP и др. ✂️ Ма
🖼 ImageSharp — мощная библиотека для обработки изображений на C# (.NET) ✅ Поддержка форматов PNG, JPEG, GIF, BMP и др. ✂️ Масштабирование и обрезка изображений 🎨 Фильтры и визуальные эффекты 🌀 Работа с анимированными GIF 🚀 Высокая производительность без лишних зависимостей 📌 Полностью написана на C# и легко интегрируется в любые .NET-проекты. Идеальный инструмент для тех, кто хочет быстро и качественно работать с изображениями. 🔗 GitHub @csharp_ci

🛡Хотите строить защищенные и масштабируемые микросервисы с помощью ASP.NET Core? Присоединяйтесь к открытому уроку 17 апреля
🛡Хотите строить защищенные и масштабируемые микросервисы с помощью ASP.NET Core? Присоединяйтесь к открытому уроку 17 апреля в 20:00 МСК и узнайте, как создать безопасные микросервисы с использованием JWT, OpenID Connect, и .NET Aspire. Мы разберем, как защитить API, оптимизировать производительность и внедрить современные подходы к аутентификации и авторизации. ❗️Что разберем: - Принципы и преимущества архитектуры микросервисов. - Защиту API с использованием JWT и OpenID Connect. - Инструменты .NET Aspire для оркестрации сервисов и настройки окружения. - Реальные шаги по созданию микросервисов, настройке безопасности и работе с Docker. 🚀 Урок пройдет в преддверии старта курса «C# ASP.NET Core разработчик». 🎁 Все участники получат скидку на обучение по промокоду: ASP_NET_04. Присоединяйтесь: https://otus.pw/HNTL/ Промокод действителен до 28.04.2025 Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

🚀 Релиз: SQL Formatting Preview в T-SQL Analyzer CLI​ В последнем обновлении инструмента T-SQL Analyzer CLI от ErikEJ появил
🚀 Релиз: SQL Formatting Preview в T-SQL Analyzer CLI​ В последнем обновлении инструмента T-SQL Analyzer CLI от ErikEJ появилась функция предварительного просмотра форматирования SQL-кода.​ ✨ Основные возможности: Автоматическое форматирование T-SQL скриптов с использованием встроенных правил.​ Интеграция с анализатором кода, позволяющая одновременно проверять и форматировать скрипты.​ Поддержка командной строки, что удобно для автоматизации процессов и интеграции в CI/CD пайплайны.​ 🔧 Пример использования: tsqlanalyze -i "C:\scripts\proc.sql" --format Эта команда проанализирует и отформатирует указанный SQL-скрипт согласно установленным правилам.​ 📌 Подробнее о новых возможностях и инструкциях по установке читайте в официальной документации.​ #sqlserver #tsql #dotnet #cli #devtools https://github.com/ErikEJ/SqlServer.Rules/tree/master/tools/SqlAnalyzerCli#sql-formatting-preview @csharp_ci

🔧 Задача на C# для внимательных разработчиков Что выведет следующий код?

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var actions = new List<Action>();

        for (int i = 0; i < 3; i++)
        {
            actions.Add(() => Console.WriteLine(i));
        }

        foreach (var action in actions)
            action();
    }
}
Варианты ответа: A)

1
2
B)

3
3
C)

0
0
D)Ошибка компиляции --- ✅ Правильный ответ: B Почему: Лямбда-функции захватывают переменную i по ссылке, а не её значение на каждой итерации. После завершения цикла i == 3, и все замыкания ссылаются на одно и то же i. Это классическая ловушка замыканий в C#. @csharp_ci

🚀 .NET 10 Preview 3 уже доступен! Новая версия приносит мощное обновление для C# — Extension Members: 💡 Теперь можно добавл
🚀 .NET 10 Preview 3 уже доступен! Новая версия приносит мощное обновление для C# — Extension Members: 💡 Теперь можно добавлять в static class расширения не только методов, но и: ▪ 🔹 Статические методы ▪ 🔹 Инстанс-свойства ▪ 🔹 Статические свойства 📦 Это значит, что вы можете "расширять" поведение типов не только логикой, но и дополнительными данными и даже стейтфул-логикой (через свойства). И всё это — без изменения исходного класса. 🔗 Подробнее: https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview3/csharp.md#extension-members #dotnet #csharp #dotnet10 #devtools #preview @csharp_ci