en
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

Open in Telegram

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

Show more

📈 Analytical overview of Telegram channel C# (C Sharp) programming

Channel C# (C Sharp) programming (@csharp_ci) in the Russian language segment is an active participant. Currently, the community unites 18 126 subscribers, ranking 7 040 in the Technologies & Applications category and 36 424 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 18 126 subscribers.

According to the latest data from 04 September, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -55 over the last 30 days and by -9 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 14.53%. Within the first 24 hours after publication, content typically collects 7.50% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 2 635 views. Within the first day, a publication typically gains 1 360 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
  • Thematic interests: Content is focused on key topics such as .net, api, логика, архитектура, string.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Thanks to the high frequency of updates (latest data received on 05 September, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

18 126
Subscribers
-924 hours
-47 days
-5530 days
Posts Archive
🖥 Вопросы и ответы на собеседовании по C# многопоточности В этой статье вы найдете полную подборку вопросов для собеседовани
+3
🖥 Вопросы и ответы на собеседовании по C# многопоточности В этой статье вы найдете полную подборку вопросов для собеседования по многопоточности C#, которые не только проверят ваше знание предмета, и обеспечат хорошую подготовку к следующему техническому собеседованию. https://dev.to/bytehide/c-multithreading-interview-questions-and-answers-4opj

🖥 Путь к Инновационному Тестированию с Selenium и C#: Мастерство и Качество Роль Selenium и C# в создании надежных автоматизированных тестов Представьте, что автоматизированные тесты - это специальные инструменты, которые помогают проверить, работает ли программа правильно. Такие тесты особенно полезны для веб-сайтов, и вот почему. Selenium - это как мощный детектив, который может заметить, что происходит на веб-странице. Он может найти кнопки, текстовые поля, выпадающие списки и многое другое. А C# - это язык, на котором можно "разговаривать" с Selenium и давать ему команды. Вместе Selenium и C# - как динамичный дуэт. Они позволяют нам создавать тесты, которые будут проверять веб-сайт на ошибки. Например, мы можем сказать, чтобы они "нажали" кнопку "Войти" и проверили, что после этого появится правильное сообщение. Это как если бы вы проверяли, что все кнопки на вашем пульте дистанционного управления работают правильно. Манипуляция с веб-элементами При создании надежных автоматизированных тестов необходимо взаимодействовать с веб-элементами, такими как кнопки, текстовые поля и выпадающие списки. В этом процессе Selenium предоставляет инструменты для поиска и взаимодействия с элементами на странице, а C# дает возможность эффективно управлять этими элементами. Клик на кнопку "Войти" на странице авторизации IWebElement loginButton = driver.FindElement(By.Id("login-button")); loginButton.Click(); Ввод текста в поле для поиска IWebElement searchBox = driver.FindElement(By.Name("search")); searchBox.SendKeys("Selenium testing"); Выбор опции "Черный" из выпадающего списка цветов IWebElement colorDropdown = driver.FindElement(By.Id("color-selector")); SelectElement colorSelect = new SelectElement(colorDropdown); colorSelect.SelectByText("Черный"); Вход на сайт и проверка успешной авторизации using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; [TestFixture] public class LoginTests { IWebDriver driver; [SetUp] public void SetUp() { driver = new ChromeDriver(); driver.Navigate().GoToUrl("https://www.example.com/login"); } [Test] public void TestSuccessfulLogin() { IWebElement usernameInput = driver.FindElement(By.Id("username")); IWebElement passwordInput = driver.FindElement(By.Id("password")); IWebElement loginButton = driver.FindElement(By.Id("login-button")); usernameInput.SendKeys("myUsername"); passwordInput.SendKeys("myPassword"); loginButton.Click(); IWebElement welcomeMessage = driver.FindElement(By.CssSelector(".welcome-message")); Assert.AreEqual("Welcome, User!", welcomeMessage.Text); } [TearDown] public void TearDown() { driver.Quit(); } } 📌 Читать дальше @csharp_ci

Вы ещё успеваете поступить в онлайн-магистратуру МФТИ «Финансовые технологии и аналитика» 👩‍🎓Ближайшие даты экзаменов — 4 и
Вы ещё успеваете поступить в онлайн-магистратуру МФТИ «Финансовые технологии и аналитика» 👩‍🎓Ближайшие даты экзаменов — 4 и 19 сентября. ➕Диплом очной магистратуры гособразца по направлению 38.03.05 «Бизнес-информатика». ➕Онлайн-обучение из любой точки мира. ➕Углубленная специализация в сфере финтех-разработки или аналитики. ➕Гранты на запуск своего стартапа в области Data Science/AI/ML до 3 млн ₽. ➕Более 5 проектов в портфолио: реальные задачи от Сбера, ВТБ, Ozon Fintech, Альфа-Банка и других финтех-компаний уже с первого семестра. ➕Возможность совмещать с работой и развивать корпоративный проект в качестве дипломного. ➕Рассрочка под 3% от Сбера и Минобразования. Платёж во время учебы — до 900 ₽ в месяц. Бесплатный подготовительный курс и запись прошедших консультаций по экзаменам доступны после регистрации. Оставьте заявку, чтобы зарегистрироваться на день открытых дверей и начать готовиться к поступлению: https://netolo.gy/b3nU Реклама ООО “Нетология” LatgBdHv1

🖥SharpShellPipe Это легковесное приложение на C#, которое осуществляет интерактивный удаленный shell доступ через именованны
🖥SharpShellPipe Это легковесное приложение на C#, которое осуществляет интерактивный удаленный shell доступ через именованный канал и протокол SMB. ▪Github @csharp_ci

⏩ RISC-V formal ISA Specification Очень интересный проект, который показывает элегантность и выразительность F# – формальная
RISC-V formal ISA Specification Очень интересный проект, который показывает элегантность и выразительность F# – формальная (и исполняемая) спецификация для RISC-V ISA, написанная в функциональном стиле. Авторы демонстрируют «чрезвычайно элементарную» реализацию F#, чтобы сделать ее читаемой и пригодной для широкой аудитории. GithubISA инструкции @csharp_ci

Создайте свое web-приложение и научитесь эффективно работать в Scrum-команде на онлайн-курсе «C# ASP.NET Core разработчик» в
Создайте свое web-приложение и научитесь эффективно работать в Scrum-команде на онлайн-курсе «C# ASP.NET Core разработчик» в OTUS. Пройдите вступительный тест и узнайте, осилите ли вы уровень курса. Результат теста получите сразу. 👉 ПРОЙТИ ХАРДКОРНЫЙ ТЕСТ ПО ASP.NЕT  Сможете успешно пройти тест — получите доступ к курсу по специальной цене! Курс доступен в рассрочку. Нативная интеграция. Информация о продукте www.otus.ru

🚀Паттерн проектирования Singleton в C#: Полное руководство Singleton - порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру. Когда надо использовать Синглтон? Когда необходимо, чтобы для класса существовал только один экземпляр Синглтон позволяет создать объект только при его необходимости. Если объект не нужен, то он не будет создан. В этом отличие синглтона от глобальных переменных. Классическая реализация данного шаблона проектирования на C# выглядит следующим образом: class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; } } В классе определяется статическая переменная - ссылка на конкретный экземпляр данного объекта и приватный конструктор. В статическом методе getInstance() этот конструктор вызывается для создания объекта, если, конечно, объект отсутствует и равен null. Для применения паттерна Одиночка создадим небольшую программу. Например, на каждом компьютере можно одномоментно запустить только одну операционную систему. В этом плане операционная система будет реализоваться через паттерн синглтон: class Program { static void Main(string[] args) { Computer comp = new Computer(); comp.Launch("Windows 8.1"); Console.WriteLine(comp.OS.Name); // у нас не получится изменить ОС, так как объект уже создан comp.OS = OS.getInstance("Windows 10"); Console.WriteLine(comp.OS.Name); Console.ReadLine(); } } class Computer { public OS OS { get; set; } public void Launch(string osName) { OS = OS.getInstance(osName); } } class OS { private static OS instance; public string Name { get; private set; } protected OS(string name) { this.Name=name; } public static OS getInstance(string name) { if (instance == null) instance = new OS(name); return instance; } } Синглтон и многопоточность При применении паттерна синглтон в многопоточным программах мы можем столкнуться с проблемой, которую можно описать следующим образом: static void Main(string[] args) { (new Thread(() => { Computer comp2 = new Computer(); comp2.OS = OS.getInstance("Windows 10"); Console.WriteLine(comp2.OS.Name); })).Start(); Computer comp = new Computer(); comp.Launch("Windows 8.1"); Console.WriteLine(comp.OS.Name); Console.ReadLine(); } Здесь запускается дополнительный поток, который получает доступ к синглтону. Параллельно выполняется тот код, который идет запуска потока и кторый также обращается к синглтону. Таким образом, и главный, и дополнительный поток пытаются инициализровать синглтон нужным значением - "Windows 10", либо "Windows 8.1". Какое значение сиглтон получит в итоге, пресказать в данном случае невозможно. Вывод программы может быть такой: Windows 8.1 Windows 10 Или такой: Windows 8.1 Windows 8.1 В итоге мы сталкиваемся с проблемой инициализации синглтона, когда оба потока одновременно обращаются к коду: if (instance == null) instance = new OS(name); Чтобы решить эту проблему, перепишем класс синглтона следующим образом: class OS { private static OS instance; public string Name { get; private set; } private static object syncRoot = new Object(); protected OS(string name) { this.Name = name; } public static OS getInstance(string name) { if (instance == null) { lock (syncRoot) { if (instance == null) instance = new OS(name); } } return instance; } } Чтобы избежать одновременного доступа к коду из разных потоков критическая секция заключается в блок lock. 📌 Статья @csharp_ci

Курс «Английский для разработчиков» Яндекс Практикума Для тех, кто хочет изменить свою профессиональную жизнь и работать в ме
Курс «Английский для разработчиков» Яндекс Практикума Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде. Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков: ✋ Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи. 👨‍💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи. 📣 Митапы. Сможете понимать на слух доклады и выступать сами. 😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать. 👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее. 💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение. Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.

⚡Продвинутые случи использования ограничении частоты запросов в .NET • Вот как определить ограничения, вызвав метод AddTokenB
+4
Продвинутые случи использования ограничении частоты запросов в .NET Вот как определить ограничения, вызвав метод AddTokenBucketLimiter (картинка 1) Ограничение пользователей по IP-адресам (картинка 2) Ограничение с учетом прокси.(картинка 3) Ограничение пользователей по идентификационным признакам (картинка 4) Реализация ограничение на обратном прокси с помощью YARP, необходимо картинка 5) 📌 Читать статью @csharp_ci

⚡Продвинутые случи использования ограничении частоты запросов в .NET Вот как определить ограничения, вызвав метод AddTokenBuc
+4
Продвинутые случи использования ограничении частоты запросов в .NET Вот как определить ограничения, вызвав метод AddTokenBucketLimiter (картинка 1) Ограничение пользователей по IP-адресам (картинка 2) Ограничение с учетом прокси.(картинка 3) Ограничение пользователей по идентификационным признакам (картинка 4) Реализация ограничение на обратном прокси с помощью YARP, необходимо картинка 5) 📌 Читать статью @csharp_ci

22.08 csharp_ci ❓Хотите освоить востребованный и универсальный C++? Сейчас подходящее время! Начать изучение можно на открыто
22.08 csharp_ci ❓Хотите освоить востребованный и универсальный C++? Сейчас подходящее время! Начать изучение можно на открытом уроке "Почему в C++ 13 способов передать параметр в функцию?" от OTUS. Урок входит в программу онлайн-курса "С++ Developer". Темы вебинара: - синтаксис передачи параметров в функции; - константы, указатели, ссылки, умные указатели, lvalue, rvalue, forward reference; - практические советы по объявлению функций, основанные на C++ Core Guidelines. Доступ к уроку бесплатный. После него вы сможете продолжить обучение на курсе, оформив рассрочку. Регистрация на урок: https://otus.pw/Xsuz/ Нативная интеграция. Информация о продукте www.otus.ru

✔Сapa capa - полезный инструмент с открытым исходным кодом для определения возможностей в исполняемых файлах. Вы запускаете е
Сapa capa - полезный инструмент с открытым исходным кодом для определения возможностей в исполняемых файлах. Вы запускаете ее для PE, ELF, .NET файла или шелл-кода, и он говорит вам, что, по его мнению, может сделать программа. Например, можно предположить, что файл является бэкдором, способен устанавливать службы или использует HTTP для запросов. ▪GithubУстановка @csharp_ci

Repost from Bekhan Code
Мне 27 лет. Вот список интересных вещей, которые я делал: Разработал проект, позволяющий звонить и рассылать СМС всем незнакомым людям в радиусе 30-50 метров (демонстрировал на съемках с Моргенштерном; 20 млн просмотров). Написал ПО (но воспользовался лишь один раз), которое имитировало 10-бальные пробки на всех дорогах Москвы в Яндекс.Картах ещё до того, как это стало мейнстримом (продемонстрировано на съемках с блогером Литвиным). На данную тематику вел Instagram и TikTok, где большинство роликов набирало миллионы просмотров. Находил уязвимости в Ленте, ГосУслугах, 1500 московских шлагбаумах (мой хабр-пост) и передавал информацию журналистам. Создал OSINT-сервис для поиска профилей в Instagram по номеру телефона. 572k просмотров на Хабре. Разработал Telegram-клиент с функцией "Двойное дно". Продвигал идею внедрить такую возможность в оригинальный клиент Telegram. Все выше перечисленное является правдой (никаких фотошопов и фокусов). Эти задумки были реализованы исключительно с целью развития моего личного бренда и не имели экономической выгоды. Я уже давно не занимаюсь личным брендом, поэтому новых публикаций нет, а перечисленные проекты были закрыты. В середине ноября 2022 года я поставил себе новую цель — Разработать игру. Не казуальную, не гиперказуальную, а сложную (в техническом смысле) и насыщенную контентом игру с глубоким геймплеем. Перед тем как расширять штат своей команды или, тем более, открывать новую игровую компанию, я хочу самостоятельно разобраться во всех аспектах разработки игр. Возможно, у вас возникнет вопрос: Зачем лезть в техническую часть создания игры, если можно найти на аутсорсе команду и делегировать ей разработку? Примерно так я и попробовал сделать. Моя компания стала искать и нанимать Unity-разработчиков. Я успел поработать с несколькими специалистами. К сожалению, ничего дельного из этого не вышло. Качество выполненных задач от ребят меня не устраивало. Как говорится, хочешь сделать хорошо — делай сам. Ну, или так: Хочешь сделать хорошо, то разберись в теме сам, заложи архитектуру и подход к разработке, а только потом делегируй и в дальнейшем контролируй. Такой подход позволит мне контролировать процесс создания игры и получить в результате именно ту игру, которую я хочу. Прошло уже 10 месяцев с момента старта, и я все еще в процессе обучения. Да, со временем я все больше и больше времени посвящаю написанию кода, но обучение все равно остается неотъемлемой частью процесса. У меня большой опыт в OSINT и информационной безопасности, но в области GameDev я новичок. Мне пришлось изучать множество новых тем, и еще предстоит столько же. К счастью, многое из моего предыдущего опыта перекликается с GameDev, что облегчает изучение. Я стараюсь конспектировать любую изученную тему. Опираясь на свой опыт, я понимаю, что со временем наш мозг "стирает" то, что кажется ему "ненужным". Конечно, "ненужная" информация на самом деле могла бы быть ценной, но мозг не консультируется с нами по данному вопросу. Если я что-то подзабыл (случается это довольно часто), то я иду в свои заметки и через поиск нахожу нужный конспект. Если я наткнулся на отличную статью по интересующей меня теме, то конспект писать уже смысла нет. Я просто сохраняю ссылку (ну, или архивирую веб-страницу для оффлайн доступа, если есть ощущения, что через год сайт закроется). Тем не менее, действительно хороших сайтов или статей, которые бы покрывали вопрос хотя бы на 80 процентов, очень мало. Если бы все статьи по GameDev (да и не только) были бы с крайне низким порогом входа и покрывали практически все вопросы, которые возникают у читателя, то процесс разработки продуктов мог бы ускориться на один, а то и два порядка (10-100 раз). Когда я только начинал обучение, я осознавал, что быстро достичь своей цели не удастся. Обучение — это сложный, многоступенчатый и местами скучный процесс. Тем не менее, сейчас я чувствую, что это обучение начинает мне надоедать. И на фоне этого "надоедания" мне пришла в голову интересная мысль... (К сожалению, весь текст не влезает в один пост. Продолжение читайте в следующем посте).

🟡 Дайджест полезных материалов из мира :C# за неделю Почитать: — UI Router в Unity + CustomEditorПреимущества функционального программирования на примерах C#Объяснения по шардинга баз данныхРеализация обмена сообщениями через MassTransitКонкурентная очередь с приоритетами (неудачно)Бессильный сборщик мусора или неуправляемая память в .NETUnity: Как реализовать бесконечный ListView с изображениями?ChatGPT в написании юнит тестовRobust use of HTTP ClientHow to deploy a BLAZOR WASM Web Application to GitHub PageIntelligent Queries By Entity IntelligenceBoost your productivity in Visual Studio - ShortcutsDealing with C# & GitHub Copilot in Visual Studio 2022Working with C# in VS Code.Game Dev Digest — Issue #200 - Develop FasterTime Period Library for .NETWie man in C#/VB.NET die Hintergrundfarbe und das Hintergrundbild von PDF-Dokumenten festlegt[C#/VB.NET] Hintergrundfarbe von Absätzen und Text in Word-Dokumenten festlegen Посмотреть: 🌐On .NET Live - Building web apps with Blazor and Spark.NET 🌐 Сравнение Unity и Unreal Engine: Что выбрать новичку? Хорошего дня! @csharp_ci

✔ Redis Explained Глубокое техническое погружение во все тонкости Redis. В статье рассматриваются различные топологии Redis,
Redis Explained Глубокое техническое погружение во все тонкости Redis. В статье рассматриваются различные топологии Redis, персистентность данных и форкинг процессов. Отличная иллюстрированная статья для глубокого понимания Redis. ▪Читать @csharp_ci

Дневник разработчика: Создание AI-ассистента в соответствии с принципами Clean Architecture🤖 Хочешь освоить мир AI и создать
Дневник разработчика: Создание AI-ассистента в соответствии с принципами Clean Architecture🤖 Хочешь освоить мир AI и создать свой собственный AI ассистент? Изучаешь ASP .Net Core и ищешь куда бы применить свои знания? Присоединяйся к моему Telegram-каналу! Ежедневно я публикую шаг за шагом процесс создания AI ассистента на .NetCore + VueJS, используя принципы Clean Architecture.

🖥 Запуск ASP.NET Core + PostgreSQL | Docker Compose Наглядный по работе docker-compose. 📌 Источник @csharp_ci

⚡Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь: Машинное обучение: @ai_machinelearning_big_data Go: @Golang_google C#: @csharp_1001_notes Базы данных: @sqlhub Python: @pythonl C/C++/: @cpluspluc Data Science: @data_analysis_ml Devops: @devOPSitsec Rust: @rust_code Javascript: @javascriptv React: @react_tg PHP: @phpshka Docker: @docker Android: @android_its Мобильная разработка: @mobdevelop Linux: linuxacademy Big Data: t.me/bigdatai Хакинг: @linuxkalii Java:@javatg Собеседования: @machinelearning_interview 💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy 🔥ИТ-Мемы: t.me/memes_prog 🇬🇧Английский: @english_forprogrammers

🖥 Преимущества функционального программирования на примерах C# Модульность и возможность повторного использования Модульность и возможность повторного использования являются ключевыми преимуществами функционального программирования, и C# предоставляет ряд возможностей, позволяющих легко достичь этих целей. Рассмотрим пример на C#, демонстрирующий достоинства модульности и многократного использования функционального программирования: using System; using System.Collections.Generic; using System.Linq; namespace ModularityAndReusabilityExample { class Program { static void Main(string[] args) { List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; int sum = numbers.Sum(); int product = numbers.Product(); Console.WriteLine("Sum: " + sum); Console.WriteLine("Product: " + product); } } public static class Extensions { public static int Product(this IEnumerable<int> source) { return source.Aggregate(1, (acc, x) => acc * x); } } } В этом примере мы создали список чисел и использовали два метода расширения для вычисления суммы и произведения этих чисел. Метод Sum — это встроенный метод, предоставляемый C#, а метод Product — это пользовательский метод расширения, который мы определили сами. Инкапсулировав логику вычисления произведения списка чисел в отдельный метод, мы создали высокомодульный и многократно используемый фрагмент кода. Этот метод расширения можно повторно использовать в различных приложениях и при необходимости легко модифицировать или расширять. Кроме того, использование методов расширения позволяет писать более выразительный и читабельный код. Вместо того чтобы писать цикл для вычисления произведения чисел, мы можем просто вызвать метод расширения Product для списка чисел. Это делает код более простым, лаконичным и удобным для чтения. В целом преимущества функционального программирования, связанные с модульностью и возможностью повторного использования, позволяют создавать хорошо поддерживаемый и масштабируемый код. Разбивая сложные задачи на более мелкие, независимые функции, мы можем создать библиотеку композитных функций, которые можно повторно использовать в различных приложениях. Используя возможности C# и функционального программирования, разработчики могут создавать надежные и масштабируемые программные системы, рассчитанные на длительную эксплуатацию. 📌 Читать дальше @csharp_ci