C# | Вопросы собесов
Відкрити в Telegram
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+nebTPWgpeGs1OWFi Задачи t.me/+Xy-0H7xKlgo0NDVi Вакансии t.me/+BQFHXZQ0zrViNGIy
Показати більше5 049
Підписники
-824 години
-137 днів
-2330 день
Архів дописів
5 049
Робот мойщик окон Hobot-R3 Ultrasonic. Гарантия 3 года.
✨ Встречайте лето - чистыми окнами с Hobot-R3:
- Два ультрозвуковых распылителя чистящей жидкости.
- Инверторный двигатель Nidec (долговечный, тихий запуск и мощный).
- На старте в режиме автоматической чистки, робот смачивает салфетку, чтобы увеличить силу трения и надежность.
- Качественные салфетки из микрофибры, удерживают грязь и пыль до момента стирки. Не царапают поверхность.
- Интеллектуальная траектория движения - без пропуска грязных участков.
- Управление со смартфона.
- Голосовые уведомления с возможностью записи собственных или установка готовых с телефона/интернета.
- Прошивка меняется по воздуху ОТА обновление- с сохранением настроек.
- 3 автоматических режима уборки.
Hobot-R3 экономит силы и время!
Купить
#реклама
hobot.ru
О рекламодателе
5 049
🤔 Можем ли построить цепочку наследования через абстрактные классы?
Да, в .NET можно построить цепочку наследования, включающую один или несколько абстрактных классов. Абстрактные классы служат как основа, задающая общую структуру, а потомки могут реализовывать или расширять логику.
Так можно выстраивать иерархии от более абстрактных понятий к более конкретным.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 049
🤔 Что такое сборщик мусора?
Сборщик мусора (Garbage Collector, GC) — это форма автоматического управления памятью. Он отслеживает каждый объект, выделенный в куче, и определяет, какие объекты более не доступны для приложения, а затем освобождает память, занимаемую этими объектами. Это ключевой компонент во многих современных языках программирования и средах выполнения, облегчая задачу управления памятью.
🚩Основные этапы работы
🟠Маркировка (Marking)
Сборщик мусора периодически проходит через все объекты в куче, начиная с "корней" (объектов, непосредственно доступных в программе, например, через переменные в стеке вызовов и глобальные переменные). Он отмечает все объекты, до которых можно добраться напрямую или косвенно.
🟠Очистка (Sweeping)
После маркировки доступных объектов, сборщик мусора удаляет все непомеченные объекты, освобождая ресурсы, которые они занимали.
🟠Компактификация (Compacting)
Некоторые сборщики мусора перемещают оставшиеся объекты, чтобы уменьшить фрагментацию памяти и улучшить производительность работы с памятью.
🚩Ограничения
🟠Производительность
Процесс сборки мусора может быть ресурсоёмким и может привести к заметным паузам в выполнении программы, особенно если куча большая.
🟠Непредсказуемость
Точное время сборки мусора может быть непредсказуемым, что может создавать проблемы в приложениях с реальным временем.
Ставь 👍 и забирай 📚 Базу знаний
5 049
🤔 Как работает ThreadPool?
- Имеется ограниченное количество потоков, заранее подготовленных.
- Когда приходит задача — она ставится в очередь.
- Свободный поток из пула берёт задачу и исполняет её.
- По завершению поток возвращается обратно в пул, а не уничтожается.
Это позволяет эффективно обрабатывать множество мелких задач без перегрузки системы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 049
Инвестиции в оборудование для майнинга!
Зарабатывайте на купле-продаже майнингового оборудования вместе с MineStream Business!
Ваши выгоды:
- Поддержка экспертов 👍
- Высокая ликвидность 📅
- Долгосрочные перспективы 💰
- Возможность быстрого старта ⚡
Узнать больше
#реклама
mine-stream.ru
О рекламодателе
5 049
🤔 Можно ли generic методы использовать не в generic классах?
Да, можно! Обобщённые (
generic) методы могут существовать в обычных (не-generic) классах.
🚩Как это работает?
Generic-метод — это метод, у которого тип параметра задаётся при вызове, даже если сам класс не является обобщённым.
Пример: Обобщённый метод в обычном классе
public class Utils
{
public static void Print<T>(T value) // Обобщённый метод
{
Console.WriteLine($"Тип: {typeof(T)}, Значение: {value}");
}
}
class Program
{
static void Main()
{
Utils.Print(100); // Тип: System.Int32, Значение: 100
Utils.Print("Hello"); // Тип: System.String, Значение: Hello
Utils.Print(3.14); // Тип: System.Double, Значение: 3.14
}
}
Ставь 👍 и забирай 📚 Базу знаний5 049
Бесплатное льготное обучение: 3 месяца
Мы ищем людей, которые хотят работать в IT-сфере из дома
💰 Оплата от 150.000 рублей в месяц
Образование, место жительства, трудовой стаж — не важны!
Подходит, как для подработки / декретного отпуска, так и для полной занятости.
Если заинтересовались, то для старта нужно:
— пройти короткий тест
— заполнить анкету
На что можно рассчитывать:
✅ удаленная работа
✅ зп от 150.000 рублей (потолка нет)
✅ стабильная подработка, если не хотите уходить с основной работы
⚡ Количество бесплатных мест ограничено. Успейте пройти тест и оставить заявку:
Узнать больше
#реклама
technolium.ru
О рекламодателе
5 049
🤔 При каких кейсах нужно денормализовывать данные?
Денормализация полезна, когда:
- Требуется высокая скорость чтения (например, в аналитических системах).
- Данные часто используются совместно и удобно держать их "рядом".
- Стоимость JOIN'ов становится критичной.
- Архитектура позволяет контролировать избыточность на уровне приложения.
Примеры кейсов:
- Системы отчетности и аналитики (DWH).
- Кэширование данных.
- Оптимизация под read-heavy нагрузки.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 049
Repost from easyoffer
📅 Осталось 7 дней до конца краудфандинга
Мы на финишной прямой!
Если ты планировал присоединиться, но ещё не успел, сейчас идеальный момент.
Вознаграждения за поддержку:
🚀 PRO подписка к easyoffer 2.0 на 1 год по цене месячной подписки. Активировать подписку можно в любой момент, например, когда начнешь искать работу.
➕ Приглашение на закрытое бета-тестирование
👉 Поддержать easyoffer 2.0
Не откладывай на последний момент
📌 Если не получается оплатить через карту РФ — напишите мне @kivaiko, и мы найдём удобный способ
5 049
🤔 Что такое медиатор?
Это паттерн проектирования поведенческих шаблонов, который позволяет уменьшить связанность между объектами, обеспечивая взаимодействие через центральный объект-посредник. Медиатор упрощает коммуникацию между компонентами системы, делая ее более модульной и легкой для сопровождения.
🚩Примеры использования
1⃣Определение интерфейса медиатора
public interface IMediator
{
void Notify(object sender, string ev);
}
2⃣Реализация медиатора
public class DialogMediator : IMediator
{
private Button _button;
private TextBox _textBox;
public DialogMediator(Button button, TextBox textBox)
{
_button = button;
_button.SetMediator(this);
_textBox = textBox;
_textBox.SetMediator(this);
}
public void Notify(object sender, string ev)
{
if (ev == "ButtonClick")
{
_textBox.Clear();
}
else if (ev == "TextBoxEnter")
{
_button.SetEnabled(true);
}
}
}
3⃣Компоненты, взаимодействующие через медиатора
public class Button
{
private IMediator _mediator;
public void SetMediator(IMediator mediator)
{
_mediator = mediator;
}
public void Click()
{
Console.WriteLine("Button clicked");
_mediator.Notify(this, "ButtonClick");
}
public void SetEnabled(bool enabled)
{
Console.WriteLine($"Button is {(enabled ? "enabled" : "disabled")}");
}
}
public class TextBox
{
private IMediator _mediator;
public void SetMediator(IMediator mediator)
{
_mediator = mediator;
}
public void EnterText()
{
Console.WriteLine("Text entered");
_mediator.Notify(this, "TextBoxEnter");
}
public void Clear()
{
Console.WriteLine("TextBox cleared");
}
}
4⃣Использование медиатора в приложении
var button = new Button();
var textBox = new TextBox();
var mediator = new DialogMediator(button, textBox);
textBox.EnterText(); // Ввод текста активирует кнопку
button.Click(); // Нажатие кнопки очищает текстовое поле
🚩Плюсы и минусы
➕Снижение связанности
Компоненты не взаимодействуют напрямую, а используют медиатор.
➕Упрощение поддержки
Вся логика взаимодействия сосредоточена в одном месте.
➕Повышение модульности
Легко добавлять новые компоненты или изменять существующие.
➖Усложнение медиатора
Медиатор может стать сложным, если в него добавляется много логики.
➖Единая точка отказа
Если медиатор выходит из строя, это может повлиять на всю систему.
Ставь 👍 и забирай 📚 Базу знаний5 049
❓Сталкиваетесь с задачами, когда вам нужно выбрать лучший алгоритм, но не понимаете, как анализировать их сложность? Ваш код может быть медленным или неэффективным, и вы не знаете, как это исправить?
📗На открытом вебинаре 21 апреля в 20:00 мск вы освоите важные инструменты для анализа сложности алгоритмов, улучшите свой навык решения алгоритмических задач и на примере простых алгоритмов сортировки и увидите разницу при применении алгоритмов разной степени сложности.
➡️Регистрируйтесь прямо сейчас и получите скидку на большое обучение «C# Developer» по промокоду SHARP_SPEC_4: https://otus.pw/fJjQ/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
5 049
Поддержка и доработка корпоративных сайтов
✅ Работаем с любыми CMS и фреймворками
👌 Наводим порядок в коде, следим за безопасностью
⚡ Быстро реагируем на обращения и качественно выполняем задачи
❤️ Гарантия на выполненные работы — 12 мес.
Узнать больше
#реклама
njsoft.dev
О рекламодателе
5 049
🤔 Как можно не используя middleware выполнить действие перед обработкой запроса и после?
1. Использовать фильтры — например, в ASP.NET Core можно использовать ActionFilter для выполнения действий до и после метода контроллера.
2. Создать делегат обработки — добавить промежуточную логику в Use на уровне Startup.
3. Атрибуты и события — применять атрибуты для выполнения кода до обработки запроса.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 049
🤔 Что такое IEnumerable?
IEnumerable — это интерфейс в базовой библиотеке классов .NET Framework, который определяет один метод:
GetEnumerator(). Этот метод возвращает объект IEnumerator, который позволяет перебирать элементы коллекции (например, массива или списка) один за другим.
🚩Зачем он нужен?
Используется для создания универсального метода перебора данных, не зависящего от типа коллекции. Это означает, что любой тип данных, который реализует IEnumerable, можно перебирать с помощью цикла foreach в C#. Это упрощает работу с различными структурами данных, предоставляя единый механизм для итерации элементов.
🚩Как он используется?
Когда вы реализуете интерфейс IEnumerable в своём классе, вы обязуете этот класс предоставлять метод GetEnumerator(), который возвращает IEnumerator. IEnumerator, в свою очередь, имеет методы для перехода к следующему элементу (MoveNext) и для получения текущего элемента (Current), а также метод Reset(), который возвращает перечислитель в начальное состояние.
using System;
using System.Collections;
public class DaysOfWeek : IEnumerable
{
private string[] days = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
public IEnumerator GetEnumerator()
{
for (int index = 0; index < days.Length; index++)
{
// Yield each day of the week.
yield return days[index];
}
}
}
public class Program
{
public static void Main()
{
DaysOfWeek daysOfWeek = new DaysOfWeek();
foreach (string day in daysOfWeek)
{
Console.WriteLine(day);
}
}
}
Ставь 👍 и забирай 📚 Базу знаний5 049
Бизнес образование в Moscow Business Academy (MBA)
Получите современное бизнес образование от международных экспертов.
✅Более 37 направлений обучения.
✅Международные дипломы.
✅Online и очные форматы обучения.
✅Разборы практических бизнес-кейсов.
Скидка на все программы online до 35%!
Узнать больше
#реклама 16+
moscow.mba
О рекламодателе
5 049
🤔 Каким образом индекс оптимизирует запрос?
Индексы позволяют базе данных быстрее находить и фильтровать данные за счет создания упорядоченной структуры. Вместо полного сканирования таблицы база данных может использовать индекс, чтобы сразу перейти к нужным записям, что значительно ускоряет выполнение запроса. Однако индексы занимают дополнительное место и могут замедлять операции вставки и обновления данных, так как индексы нужно поддерживать в актуальном состоянии.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 049
Бесплатное льготное обучение: 3 месяца
Ищем людей, которые хотят обучиться и работать в IT-сфере из дома
В конце обучения вы пройдете стажировку и устроитесь на работу с зп от 150.000 рублей
Образование, место жительства, трудовой стаж — не важны!
Для старта нужно:
— пройти короткий тест
— заполнить анкету
На что можно рассчитывать, после обучения:
✅ удаленная работа
✅ зп от 150.000 рублей (потолка нет)
✅ стабильная подработка, если не хотите уходить с основной работы
⚡ Осталось всего 47 бесплатных мест. Успейте пройти тест и оставить заявку:
Узнать больше
#реклама 16+
technolium.ru
О рекламодателе
5 049
📺 Уникальная база IT собеседований
456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы.
Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д.
🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!
5 049
🤔 Какие есть подходы в рамках эфкора?
Entity Framework Core (EF Core) — это ORM (Object-Relational Mapping), которая упрощает работу с базой данных в C#.
Основные подходы работы с EF Core:
Code First (Код → База)
Database First (База → Код)
Model First (Модель → База → Код)
🚩Code First (Сначала код)
Сначала создаётся код (C# классы), а база данных создаётся автоматически.
Если у нас нет готовой базы данных
Когда разрабатываем с нуля
Легче вносить изменения через миграции
1⃣Создаём модель
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
2⃣Создаём контекст (DbContext)
public class AppDbContext : DbContext
{
public DbSet<User> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer("Server=.;Database=TestDb;Trusted_Connection=True;");
}
3⃣Применяем миграции
dotnet ef migrations add InitialCreate
dotnet ef database update
🚩Database First (Сначала база)
База данных уже есть → EF Core генерирует код (модели, DbContext).
Когда уже существует база
Когда работаете с наследуемой системой
Как сгенерировать модели из базы?
dotnet ef dbcontext scaffold "Server=.;Database=TestDb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models
🚩Model First (Сначала модель)
Создаём модель (визуально), потом генерируем базу и код.
Не поддерживается в EF Core! (была в EF 6)
В старых проектах (EF 6) с визуальным проектированием
Когда нужна автогенерация схемы БД
Используйте Code First с миграциями вместо Model First.
Ставь 👍 и забирай 📚 Базу знаний5 049
Переход на микросервисы с Kubernetes: что нужно учесть?
24 апреля на бесплатном вебинаре от СберТеха «К микросервисам через построение управляемой контейнерной среды» поговорим о требованиях к контейнеризации и их реализации в продуктах Platform V DropApp и Platform V Synapse Service Mesh.
Что обсудим:
⚡ Почему важно выбрать правильный дистрибутив Kubernetes
⚡ Что входит в Platform V DropApp и каковы его основные преимущества
⚡ Какие инструменты помогают в защите контейнерных сред
⚡ Какие дополнительные ценности дает service mesh
А также поделимся опытом эксплуатации продуктов в высоконагруженных средах и расскажем, как использование решений от одного поставщика позволяет упростить жизнь продуктовых команд.
Регистрируйтесь и приходите 24 апреля!
Зарегистрироваться
#реклама 16+
platformv.sbertech.ru
О рекламодателе
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
