C# | Вопросы собесов
الذهاب إلى القناة على Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
إظهار المزيد4 997
المشتركون
-324 ساعات
-27 أيام
-230 أيام
جاري تحميل البيانات...
القنوات المماثلة
سحابة العلامات
الإشارات الواردة والصادرة
---
---
---
---
---
---
جذب المشتركين
سبتمبر '26
سبتمبر '26
+31
في 0 قنوات
أغسطس '26
+70
في 0 قنوات
Get PRO
يوليو '26
+49
في 0 قنوات
Get PRO
يونيو '26
+36
في 1 قنوات
Get PRO
مايو '26
+37
في 0 قنوات
Get PRO
أبريل '26
+34
في 0 قنوات
Get PRO
مارس '26
+65
في 0 قنوات
Get PRO
فبراير '26
+78
في 0 قنوات
Get PRO
يناير '26
+90
في 0 قنوات
Get PRO
ديسمبر '25
+46
في 0 قنوات
Get PRO
نوفمبر '25
+101
في 0 قنوات
Get PRO
أكتوبر '25
+90
في 0 قنوات
Get PRO
سبتمبر '25
+45
في 0 قنوات
Get PRO
أغسطس '25
+68
في 0 قنوات
Get PRO
يوليو '25
+60
في 0 قنوات
Get PRO
يونيو '25
+79
في 0 قنوات
Get PRO
مايو '25
+76
في 0 قنوات
Get PRO
أبريل '25
+123
في 0 قنوات
Get PRO
مارس '25
+234
في 2 قنوات
Get PRO
فبراير '25
+394
في 4 قنوات
Get PRO
يناير '25
+225
في 53 قنوات
Get PRO
ديسمبر '24
+114
في 2 قنوات
Get PRO
نوفمبر '24
+141
في 0 قنوات
Get PRO
أكتوبر '24
+399
في 42 قنوات
Get PRO
سبتمبر '24
+658
في 250 قنوات
Get PRO
أغسطس '24
+192
في 0 قنوات
Get PRO
يوليو '24
+297
في 54 قنوات
Get PRO
يونيو '24
+1 033
في 246 قنوات
Get PRO
مايو '24
+1 473
في 190 قنوات
Get PRO
أبريل '24
+919
في 23 قنوات
| التاريخ | نمو المشتركين | الإشارات | القنوات | |
| 16 سبتمبر | 0 | |||
| 15 سبتمبر | +1 | |||
| 14 سبتمبر | +4 | |||
| 13 سبتمبر | 0 | |||
| 12 سبتمبر | +1 | |||
| 11 سبتمبر | +5 | |||
| 10 سبتمبر | 0 | |||
| 09 سبتمبر | +4 | |||
| 08 سبتمبر | +2 | |||
| 07 سبتمبر | +1 | |||
| 06 سبتمبر | +1 | |||
| 05 سبتمبر | +1 | |||
| 04 سبتمبر | 0 | |||
| 03 سبتمبر | +2 | |||
| 02 سبتمبر | +3 | |||
| 01 سبتمبر | +6 |
منشورات القناة
Создание кроссплатформенного GUI на Rust
⚡Electron тяжёл, а Rust + Tauri дают лёгкое, быстрое и безопасное десктоп-приложение для Windows, macOS и Linux. Tauri берёт HTML/CSS/JS для интерфейса и мощь Rust для бэкенда.
📅 23 сентября в 20:00 на открытом вебинаре разберём полный цикл создания GUI на Rust с Tauri: организация проекта, логика на Rust и её связь с интерфейсом, работа с данными, безопасные системные вызовы через permissions и capabilities в Tauri 2, асинхронность, сборка, отладка и лучшие практики.
💻 Вебинар не для тех, кто ждёт «скопируй-вставь». Подойдёт фронтенд-разработчикам, программистам, интересующимся Rust, и энтузиастам, уставшим от Electron.
✅ После вебинара вы сможете создавать десктоп-приложения на Rust, связывать логику с UI, настраивать безопасность и собирать готовое приложение.
Записаться
#реклама 16+
otus.ru
О рекламодателе
| 2 | 🤔 Что такое String?
String в C# — это класс, представляющий неизменяемую последовательность символов. Каждый раз, когда строка изменяется, создаётся новый объект String, а старый объект остаётся в памяти до сборки мусора. Строки поддерживают методы для работы с текстом, такие как конкатенация, сравнение и поиск подстрок. Так как строки неизменяемы, для частых изменений строк предпочтительнее использовать StringBuilder.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний | 320 |
| 3 | Куда пойти с ребенком летом? Дни открытых дверей UFirst!
⚡ Детей ждет масштабный бесплатный интерактив по возрастам:
✅3-9 лет: Английское приключение Лабубу против Вакуку. Учим первые слова через игру и создаём своего персонажа.
✅10-16 лет: Глобальная музыкальная битва в стиле «K-Pop» против всего мира. Разбираем современные хиты, прокачиваем словарный запас и собираем свою команду.
✅Новинка! (7-16 лет): Мини-мастерская китайской каллиграфии! Знакомимся с культурой Китая, пробуем писать настоящей кистью и открываем новое трендовое направление школы UFirst.
БОНУС: при покупке любого курса в день мероприятия - памятный подарок каждому участнику!
Когда? 22 августа и 29 августа
Где? В комфортных школах вашего города
🎓Приходите всей семьей! Вход бесплатный, но места тают. Зарегистрироваться по ссылке: https://clck.ru/3VJU55
Узнать больше
#реклама 16+
ufirst.ru
О рекламодателе | 378 |
| 4 | 🤔 Если в двух переменных хранится одинаковое значение, то будут ли они равны?
Сравнение значений переменных может зависеть от типа данных, хранящихся в этих переменных, и от способа их сравнения.
🟠Примитивные типы (Value Types)
Для примитивных типов (например, int, float, char, bool) значение хранятся непосредственно в переменных, и их сравнение выполняется по значению.
int a = 5;
int b = 5;
bool areEqual = (a == b); // True
🟠Ссылочные типы (Reference Types)
Для ссылочных типов (например, классы, строки) переменные содержат ссылки на объекты в куче. Сравнение ссылочных типов по умолчанию выполняется по ссылке, а не по значению.
class Person
{
public string Name { get; set; }
}
Person person1 = new Person { Name = "Alice" };
Person person2 = new Person { Name = "Alice" };
bool areEqual = (person1 == person2); // False, потому что сравниваются ссылки
🟠Строки (Strings)
Строки являются ссылочными типами, но переопределяют операторы сравнения == и Equals для сравнения по значению.
string str1 = "Hello";
string str2 = "Hello";
bool areEqual = (str1 == str2); // True, строки сравниваются по значению
🟠Кастомные классы
Для кастомных классов можно переопределить методы Equals и GetHashCode, чтобы сравнивать объекты по значению.
class Person
{
public string Name { get; set; }
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
return false;
Person other = (Person)obj;
return Name == other.Name;
}
public override int GetHashCode()
{
return Name.GetHashCode();
}
}
Person person1 = new Person { Name = "Alice" };
Person person2 = new Person { Name = "Alice" };
bool areEqual = person1.Equals(person2); // True
Ставь 👍 и забирай 📚 Базу знаний | 323 |
| 5 | RabbitMQ в Production: Transactional Outbox
Отправить сообщение в RabbitMQ несложно. Гораздо сложнее сделать так, чтобы система работала корректно в production: сообщения не терялись, не обрабатывались повторно, а ошибки не приводили к бесконечным ретраям и дублированию данных.
На открытом уроке 17 сентября в 20:00 разберём типичные проблемы при построении событийно-ориентированных систем и проверенные подходы к их решению. Поговорим о паттерне Transactional Outbox, идемпотентности, и покажем, как Dead Letter Queue (DLQ) помогает работать с ошибками. Примеры на ASP.NET Core и RabbitMQ, но подходы применимы и к другим брокерам.
Вы узнаете, как гарантировать доставку, избежать дублирования данных и организовать обработку ошибок без остановки пайплайна ✅.
Узнать больше
#реклама 16+
otus.ru
О рекламодателе | 404 |
| 6 | 🤔 Для чего нужны нереляционные базы данных?
Нереляционные базы данных (NoSQL) используются для работы с большими объёмами данных, структурированных или неструктурированных, а также для обеспечения гибкости и масштабируемости. Они подходят для хранения документов, ключей-значений, графов или временных рядов. Такие базы, как MongoDB или Redis, идеальны для приложений с динамической структурой данных или высокой нагрузкой.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний | 397 |
| 7 | 🔍Тестовое собеседование с Senior C# разработчиком уже завтра
15 сентября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle C# разработчика.
Как это будет:
📂 Александр Моргунов, старший C# разработчик с опытом 7+ лет в Европейских высоконагруженных сервисах, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Александру
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для C# разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_csharp_bot
Реклама.
О рекламодателе. | 403 |
| 8 | 🤔 Что такое I/O bound и CPU bound?
При выполнении программных задач можно выделить два типа нагрузок:
I/O-bound (ограничение ввода-вывода)
CPU-bound (ограничение процессора)
🚩I/O-bound (ограничение ввода-вывода)
Основная проблема: программа ждет завершения операций ввода-вывода (диска, сети, базы данных, файловой системы и т. д.), а не загружает процессор.
Примеры:
- Чтение и запись файлов на диск
- Запросы к базе данных
- HTTP-запросы к API
- Чтение данных из сети
Решение: Использование асинхронного программирования (async/await), чтобы не блокировать поток.
public async Task<string> FetchDataAsync()
{
using HttpClient client = new HttpClient();
return await client.GetStringAsync("https://example.com");
}
🚩CPU-bound (ограничение процессора)
Основная проблема: процессор сильно загружен вычислениями, и узким местом становится скорость обработки данных, а не ввод-вывод.
Примеры:
- Генерация больших отчетов
- Кодирование/декодирование видео
- Комплексные математические вычисления
- Сортировка больших массивов
public static long CalculateFactorial(int number)
{
return Enumerable.Range(1, number).Aggregate(1, (a, b) => a * b);
}
public async Task<long> ComputeAsync(int number)
{
return await Task.Run(() => CalculateFactorial(number));
}
Ставь 👍 и забирай 📚 Базу знаний | 411 |
| 9 | 🤔 Пример паттерна Строитель?
Например, при создании объекта типа "Отчёт":
- У объекта много параметров (заголовок, дата, содержимое, автор, таблицы).
- С помощью билдера можно поочерёдно вызывать методы SetTitle(), SetContent(), SetFooter() и получить готовый объект методом Build().
Этот подход улучшает читаемость и гибкость кода.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний | 456 |
| 10 | Проводим розыгрыш в нашем боте
20 Яндекс Станций, 5 пар Яндекс Дропс и крутой мерч, который будет помогать создавать новое уже сегодня!
Узнать больше
#реклама 16+
refer.id
О рекламодателе | 427 |
| 11 | 🤔 Что такое метод Finalize?
Метод Finalize() представляет собой специальный метод, который предназначен для выполнения финальной очистки ресурсов перед тем, как объект будет уничтожен сборщиком мусора. Это метод, который может быть определен в классе для очистки неуправляемых ресурсов, если класс не реализует интерфейс IDisposable.
🚩Особенности метода
🟠Автоматический вызов
Сборщик мусора автоматически вызывает Finalize() на объекте, который не имеет других активных ссылок и который определяет финализатор. Это происходит непосредственно перед тем, как сборщик мусора освобождает память, занимаемую объектом.
🟠Определение в базовом классе `Object`
Все объекты наследуют от базового класса Object, который предоставляет реализацию Finalize(). Однако в большинстве случаев Finalize() не имеет реализации и не делает ничего, пока не будет переопределен в производном классе.
🟠Замедление сборки мусора
Наличие объектов с финализаторами может замедлить процесс сборки мусора, так как объекты, требующие финализации, должны быть обработаны дважды: сначала они помещаются в очередь финализации, а затем их память освобождается после выполнения Finalize().
class ResourceWrapper
{
// Конструктор
public ResourceWrapper() {
// Инициализация ресурсов
}
// Финализатор
~ResourceWrapper() {
// Код очистки ресурсов
}
}
Ставь 👍 и забирай 📚 Базу знаний | 404 |
| 12 | Ищем менеджеров нейросетей, можно без опыта
Опыт не нужен. Только телефон. Занятость — 3-6 часов в день.
Нужно выполнять задачи с помощью нейросетей. Все это вы делаете из дома.
Всему обучим на бесплатном курсе и после поможем со стартом.
Что вас ждет за 3 дня:
✅ Уроки с практикой по 30 минут
✅ Домашние задания с проверкой и оплатой бонусами
✅ Выплата за каждую выполненную работу
🎓 Все, кто пройдет обучение, получат сертификат от школы с образовательной лицензией.
Набор закрывается, как только группа заполнится.
Чтобы занять место нажмите "Зарегистрироваться".
Зарегистрироваться
#реклама 16+
course.neurogansta.ru
О рекламодателе | 359 |
| 13 | 🤔 Какие методы есть в Action фильтре?
Используются для выполнения логики до и после выполнения метода действия контроллера. Они предоставляют механизм для выполнения кросс-секционных задач, таких как логирование, обработка исключений, валидация и т.д. Action фильтры реализуют интерфейс IActionFilter или IAsyncActionFilter.
🚩Методы в Action фильтре
🟠OnActionExecuting
Этот метод вызывается перед выполнением метода действия. Здесь можно добавить логику, которая будет выполняться до вызова действия, например, логирование или проверка условий.
public void OnActionExecuting(ActionExecutingContext context)
{
// Логика до выполнения действия
}
🟠OnActionExecuted
Этот метод вызывается после выполнения метода действия. Здесь можно добавить логику, которая будет выполняться после вызова действия, например, логирование результатов или модификация ответа.
public void OnActionExecuted(ActionExecutedContext context)
{
// Логика после выполнения действия
}
🟠OnActionExecutionAsync
Этот метод объединяет функциональность OnActionExecuting и OnActionExecuted в одном асинхронном методе. Здесь можно определить логику, которая будет выполняться как до, так и после выполнения метода действия.
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
// Логика до выполнения действия
var resultContext = await next();
// Логика после выполнения действия
}
🚩Реализации Action фильтра
Синхронный Action фильтр:
public class SampleActionFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// Логика до выполнения действия
Console.WriteLine("Before executing action");
}
public void OnActionExecuted(ActionExecutedContext context)
{
// Логика после выполнения действия
Console.WriteLine("After executing action");
}
}
Асинхронный Action фильтр:
public class SampleAsyncActionFilter : IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
// Логика до выполнения действия
Console.WriteLine("Before executing action");
var resultContext = await next();
// Логика после выполнения действия
Console.WriteLine("After executing action");
}
}
🚩Применение Action фильтра
Action фильтр можно применять к контроллерам или действиям контроллера с помощью атрибута [ServiceFilter] или [TypeFilter]. Также его можно зарегистрировать глобально в Startup.cs.
Применение к контроллеру или действию:
[ServiceFilter(typeof(SampleActionFilter))]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
Глобальная регистрация:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers(config =>
{
config.Filters.Add(typeof(SampleActionFilter));
});
}
Ставь 👍 и забирай 📚 Базу знаний | 353 |
| 14 | Квартиры Петербург Новостройка Рассрочка от застройщика
Жилой комплекс "Квартал Заречье"
Санкт-Петербург. Колпино.
4 девятиэтажных жилых корпуса
8-этажный крытый гараж на 496 парковочных мест
В живописном месте у реки Ижора.
На первых этажах будут размещены магазины, кофейни, поликлиника и зона коворкинга.
Перейти на сайт
Финансовые услуги оказывает: ПАО «Сбербанк». Проектная декларация на сайте https://наш.дом.рф/. Застройщик: ООО «СЗ «ЗАГОРОДНАЯ, 71».
#реклама
квартал-заречье.рф
О рекламодателе | 320 |
| 15 | 🤔 В чём заключается реализация паттерна абстрактной фабрики
Суть реализации:
- Есть абстрактный интерфейс фабрики, определяющий методы создания продуктов.
- Есть конкретные реализации этой фабрики, каждая из которых возвращает продукты одного "семейства".
- Клиент работает с абстракциями, не зная конкретных реализаций.
Это обеспечивает гибкость, масштабируемость и ослабленную связанность между компонентами.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний | 408 |
| 16 | Масштабный ИТ-практикум по ИИ-инфраструктуре 17 сентября
Поделимся накопленной за 30 лет экспертизой и без воды расскажем, как внедрять ИИ в высоконагруженные системы.
Что вас ждет:
✅ Кейсы: раскроем закрытую информацию от продуктовых экспертов и архитекторов DEPO.
✅ Фокус на практике. Будем говорить только о трендах ИИ-инфраструктуры, архитектуре серверов для обучения и инференса, новых разработках.
✅ Прямой диалог с экспертами DEPO и VK Tech, которые ежедневно проектируют и внедряют серверные решения.
✅ Полезные материалы. Презентации, чек-листы и запись трансляции.
✅ Розыгрыш призов от DEPO среди зарегистрированных участников. Приятный штрих к плотной технической программе.
Если вы отвечаете за ИТ-архитектуру и устали от общих обзоров про ИИ, этот практикум для вас!
Начало мероприятия: 17 сентября в 14.30 по МСК.
Перейти на сайт
#реклама 16+
depomeetuponline.tilda.ws
О рекламодателе | 321 |
| 17 | 🤔 Какие проблемы могут быть при многопоточности и как их избежать?
Многопоточное программирование позволяет улучшить производительность программ за счет параллельной обработки данных, но это также влечет за собой ряд специфических проблем. Понимание этих проблем и способы их предотвращения или управления ими критически важны для создания надежных и эффективных многопоточных приложений.
🚩Основные проблемы
🟠Гонки данных (Race Conditions)
Проблема: Два или более потоков пытаются одновременно изменить общие данные или один поток читает данные во время их изменения другим потоком, что приводит к непредсказуемым результатам.
Решение: Использование механизмов синхронизации, таких как блокировки (locks), мьютексы (mutexes) и семафоры (semaphores), для контроля доступа к общим ресурсам.
🟠Взаимная блокировка (Deadlock)
Проблема: Два или более потоков бесконечно ожидают ресурсы, заблокированные друг другом, в результате чего они не могут продолжить выполнение.
Решение: Разработка программы таким образом, чтобы потоки запрашивали ресурсы всегда в одном и том же порядке, использование таймаутов для блокировок, чтобы потоки могли выйти из состояния ожидания.
🟠Голодание (Starvation)
Проблема: Один или несколько потоков не могут получить доступ к необходимым ресурсам, потому что другие потоки постоянно занимают их.
Решение: Применение справедливых блокировок (fair locks) или алгоритмов планирования, которые обеспечивают всем потокам равный доступ к ресурсам.
🟠Переключение контекста (Context Switching)
Проблема: Частое переключение контекста между потоками может значительно снизить производительность системы, особенно если потоки часто блокируются и разблокируются.
Решение: Оптимизация количества потоков, уменьшение зависимостей между потоками и уменьшение использования блокировок.
🟠Проблемы с проектированием
Проблема: Неправильное проектирование многопоточной архитектуры может привести к сложностям в поддержке и расширении программного обеспечения.
Решение: Использование абстракций высокого уровня для работы с потоками, таких как пулы потоков, параллельные библиотеки (например, TPL в .NET) и модели акторов.
private static readonly object _lock = new object();
private static int _sharedResource;
public static void UpdateResource()
{
lock (_lock)
{
_sharedResource++;
// Выполнение некоторой работы с общим ресурсом
}
}
Избегание взаимной блокировки
private static readonly object _lock1
= new object();
private static readonly object _lock2 = new object();
public static void Method1()
{
lock (_lock1)
{
// Некоторые действия
lock (_lock2)
{
// Дополнительные действия
}
}
}
public static void Method2()
{
lock (_lock1)
{
// Аналогичные действия
lock (_lock2)
{
// Дополнительные действия
}
}
}
Ставь 👍 и забирай 📚 Базу знаний | 392 |
| 18 | Регистрируйтесь на Yandex Scale 2026
Главная конференция Yandex Cloud.
Узнайте о сервисах, которые меняют ваш бизнес.
4 офлайн-трека (AI, Infra + DevTools, Data, Security), онлайн-трек Deep Tech, воркшопы по ИИ и интерактивы. Подробнее о программе читайте в карточках🗒
📅24 сентября
🚗Москва + 💻онлайн
Участие бесплатное!
Зарегистрироваться
#реклама 16+
scale.yandex.cloud
О рекламодателе | 358 |
| 19 | 🤔 Как сделать связь один к одному?
Для связи "один к одному" создаётся внешний ключ в одной таблице, связанный с первичным ключом другой таблицы, и для внешнего ключа добавляется ограничение уникальности.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний | 512 |
| 20 | 🤔 Что такое hashset?
HashSet<T> — это коллекция уникальных элементов, которая обеспечивает быстрый поиск, добавление и удаление. В основе HashSet<T> лежит хеш-таблица, что делает операции очень быстрыми (почти за O(1) в среднем случае).
🚩Создание и использование `HashSet<T>`
Простой пример
HashSet<int> numbers = new HashSet<int> { 1, 2, 3, 4, 5 };
// Добавление элементов (дубликаты не добавляются)
numbers.Add(3); // Уже есть в HashSet, не добавится
numbers.Add(6); // Добавится
// Вывод всех элементов
foreach (int num in numbers)
{
Console.Write(num + " ");
}
Вывод
1 2 3 4 5 6
🚩Основные операции
Пример работы с Contains и Remove
if (numbers.Contains(3))
{
numbers.Remove(3);
}
Console.WriteLine(string.Join(", ", numbers));
Вывод
1, 2, 4, 5, 6
🚩Операции над множествами
HashSet<T> поддерживает математические операции над множествами, такие как пересечение, объединение и разность.
Пересечение (IntersectWith)
HashSet<int> set1 = new HashSet<int> { 1, 2, 3, 4 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5, 6 };
set1.IntersectWith(set2); // Оставит только {3, 4}
Console.WriteLine(string.Join(", ", set1));
Вывод
3, 4
Объединение (UnionWith)
set1 = new HashSet<int> { 1, 2, 3 };
set2 = new HashSet<int> { 3, 4, 5 };
set1.UnionWith(set2); // set1 = {1, 2, 3, 4, 5}
Console.WriteLine(string.Join(", ", set1));
Вывод
1, 2, 3, 4, 5
Разность (ExceptWith)
set1 = new HashSet<int> { 1, 2, 3, 4, 5 };
set2 = new HashSet<int> { 3, 4 };
set1.ExceptWith(set2); // Удалит {3, 4}, останется {1, 2, 5}
Console.WriteLine(string.Join(", ", set1));
Вывод
1, 2, 5
Ставь 👍 и забирай 📚 Базу знаний | 540 |
