C# | Вопросы собесов
Open in Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Show more4 994
Subscribers
No data24 hours
-57 days
-1330 days
Posts Archive
4 992
❓Хотите стать C#-разработчиком, но боитесь, что будет сложно?
Подготовьтесь заранее и освойте Git — ключевой инструмент командной разработки!
На открытом вебинаре 31 марта в 20:00 мск разберем:
◽️ Систему контроля версий
◽️ Основные команды
◽️ Принципы работы с репозиториями
◽️ Эти знания помогут вам уверенно работать в команде и подготовиться к следующему этапу.
С Git вы сможете эффективно управлять кодом, вести проекты и двигаться к позиции Junior и Middle.
🔗 Регистрируйтесь на вебинар и 🎁 получите скидку на большое обучение «C# Developer»: https://otus.pw/6iRG/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
4 992
Стать бэкендером в Яндексе за несколько дней
12–17 апреля устраиваем Week Offer Backend: за несколько дней можно пройти технические секции и попасть в Яндекс. Для этого нужно зарегистрироваться и решить несколько задач в Контесте.
Ищем классных бэкенд-разработчиков с опытом работы от 3 лет на C++, Python, Java/Kotlin или Go, готовых работать в офисном или гибридном режиме в России.
Вы сможете выбрать одну из команд: Яндекс Пэй, Яндекс ID, Яндекс Плюс, Яндекс Сплит, Яндекс Сейвы, Яндекс 360. Можно пообщаться с нанимающими менеджерами и выбрать самый интересный проект. Если всё пройдёт хорошо, сразу же получите офер.
Зарегистрироваться
#реклама
yandex.ru
О рекламодателе
4 992
🤔 В какой момент отправляется запрос к базе данных?
Запрос отправляется к базе данных, когда приложение вызывает операции, такие как SaveChanges (в ORM) или выполняет SQL-команду напрямую.
1. В ORM запрос может быть отложен до реального использования данных (ленивая загрузка).
2. Это позволяет оптимизировать взаимодействие с базой, минимизируя количество запросов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
4 992
Получи грант на обучение в Центральном университете
Прояви себя, получи грант до 2,8 млн на обучение ИТ и бизнесу в вузе.
Для школьников 10-х и 11-х классов, СПО.
Подать заявку
#реклама
apply.centraluniversity.ru
О рекламодателе
4 992
🤔 Может ли pipeline не обрабатывать HTTP запросы?
Да, Pipeline может не обрабатывать HTTP-запросы, если:
Запрос был остановлен раньше (например, с
UseMiddleware или Use без вызова next()).
Некорректная маршрутизация (запрос не соответствует ни одному маршруту).
Фильтрация запроса (например, через UseWhen или MapWhen).
Ошибка в middleware (исключение без обработки).
🚩Что такое `Pipeline` в ASP.NET Core?
В ASP.NET Core конвейер обработки запросов (Pipeline) состоит из **middleware-компонентов, которые могут изменять или перенаправлять запрос.
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.Use(async (context, next) =>
{
Console.WriteLine("Middleware 1: До запроса");
await next(); // Передача дальше
Console.WriteLine("Middleware 1: После запроса");
});
app.Run(async (context) =>
{
Console.WriteLine("Middleware 2: Обработка запроса");
await context.Response.WriteAsync("Ответ от сервера");
});
app.Run();
🚩Как `Pipeline` может не обработать HTTP-запрос?
Middleware останавливает запрос (next() не вызывается
Если в Middleware не вызвать next(), то дальнейшие обработчики не выполнятся.
app.Use(async (context, next) =>
{
await context.Response.WriteAsync("Запрос остановлен.");
// next() НЕ вызывается, запрос не проходит дальше
});
🚩Запрос не попадает ни в один обработчик
Если Pipeline настроен неправильно, запрос может не попасть ни в один обработчик.
app.UseRouting(); // Включает маршрутизацию, но маршруты не настроены!
app.UseEndpoints(endpoints =>
{
// Здесь НЕТ ни одного маршрута!
});
app.Run();
🚩Использование `UseWhen` или `MapWhen` для фильтрации запросов
Методы UseWhen и MapWhen позволяют разделять обработку запросов.
app.MapWhen(context => context.Request.Path == "/special", appBranch =>
{
appBranch.Run(async context =>
{
await context.Response.WriteAsync("Специальный маршрут");
});
});
// Основной обработчик
app.Run(async context =>
{
await context.Response.WriteAsync("Обычный маршрут");
});
🚩Ошибка в Middleware
Если в middleware возникает необработанное исключение, то Pipeline прерывается.
app.Use(async (context, next) =>
{
throw new Exception("Ошибка!");
await next(); // Код ниже не выполнится
});
Правильный способ
app.UseExceptionHandler("/error");
app.Run(async context =>
{
await context.Response.WriteAsync("Основной обработчик");
});
Ставь 👍 и забирай 📚 Базу знаний4 992
В Антарктиду с RussiaDiscovery! Круиз на новый год 2026.
✅ Панорамные окна на лайнере SH Vega, бассейн-инфинити, спа, камины в каютах.
✅ Высадки на континент, каякинг у ледников, купание в термальных водах, киты и пингвины!
✅ Все включено: отель 5* в Буэнос-Айресе, перелет до точки отправления, алкоголь, экспедиционная одежда.
✅ Новогодний ужин среди льдов + экскурсия на станцию «Беллинсгаузен».
Встречайте Новый год там, где заканчивается карта мира!
— Самое теплое время (+15°C днем) и море света антарктического лета.
— Стабилизаторы качки, профессиональная команда и VIP-сервис.
— 12 дней для получения самых ярких впечатлений жизни.
Всего 152 места, забирайте свою каюту, пока есть места!
Бронь всего 20% от стоимости.
Нажиммайте «Забронировать»
Забронировать
#реклама 16+
russiadiscovery.ru
О рекламодателе
4 992
🤔 Что такое ссылочный тип и в чем их особенности?
Ссылочные типы (классы, интерфейсы, делегаты) хранятся в куче и передаются по ссылке. Их изменение внутри метода сохраняется после выхода из него, а сборщик мусора управляет их памятью.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
4 992
Проведите экспресс-аудит IT поддержки за 15 минут!
Ваша IT-поддержка может работать лучше.
✅ Оцените реальную эффективность вашей IT-поддержки.
✅ Найдите скрытые источники потерь времени и денег.
✅ Получите готовый план действий по улучшению сервиса.
✅ Сравните свои показатели со средними по рынку.
Получите персональный чек-лист, экспресс-диагностику и получите план оптимизации IT-поддержки уже сегодня!
Получить предложение
#реклама 16+
promo.itilium.ru
О рекламодателе
4 992
🤔 Что такое carbage collector?
Garbage Collector (GC)** — это автоматический механизм управления памятью в .NET, который освобождает неиспользуемые объекты, предотвращая утечки памяти.
🚩Как работает GC?
🟠Объекты создаются в управляемой памяти (Heap)
Когда мы создаём объект
var obj = new object();
🟠Когда объект больше не нужен, GC его удаляет
Если на объект больше нет ссылок, он становится "мусором" и может быть удалён
void Test()
{
var obj = new object(); // Создали объект
} // obj выходит из области видимости -> GC может его удалить
🚩Поколения GC (Generations)
GC в .NET использует поколения (Generations), чтобы ускорить сборку мусора:
🚩Принудительный вызов GC (нежелательно)
Обычно GC работает автоматически, но можно вызвать его вручную:
GC.Collect(); // Принудительный запуск GC (используйте осторожно!)
🚩Как уменьшить нагрузку на GC?
Использовать using для очистки ресурсов:
using (var file = new StreamWriter("file.txt"))
{
file.WriteLine("Hello, world!");
} // Файл автоматически закроется
Реализовать IDisposable для освобождения ресурсов вручную:
public class MyResource : IDisposable
{
public void Dispose()
{
Console.WriteLine("Ресурс освобождён");
}
}
using (var resource = new MyResource())
{
// Используем ресурс
} // Вызовется Dispose()
Избегать ненужных ссылок – если переменная больше не нужна, лучше обнулять её
obj = null;
Ставь 👍 и забирай 📚 Базу знаний4 992
Когда подрядчик тележится, добавляйте его в Коллабу
Битрикс24 Коллабы – платформа для эффективной работы с подрядчиками. Тут обсуждения превращаются в задачи, а видео созвон можно собрать одной кнопкой. Любой проект можно разложить по полочкам с понятным ТЗ и обозначенными сроками.
Работайте в Битрикс24 и создавайте Коллабы с подрядчиками.
Начать
#реклама 16+
collabs.bitrix24.ru
О рекламодателе
4 992
🤔 Что такое перегрузка метода?
Это возможность объявлять методы с одинаковым именем, но с разными параметрами (типами, количеством или порядком).
• Она позволяет создавать более гибкий и удобный интерфейс класса.
• Пример:
void Print(string message) { ... }
void Print(int number) { ... }
Каждый из методов будет вызываться в зависимости от переданных аргументов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
4 992
Repost from easyoffer
Я поставил целью сбора скромные 300 тыс. рублей, но ребята, вы накидали больше млн. всего за 1 день. Это просто невероятно!
Благодаря вашей поддержке, я смогу привлечь еще больше людей для разработки сайта и обработки собеседований. Ваш вклад сделает проект качественнее и ускорит его выход! Огромное вам спасибо!
Краудфандинг будет продолжаться еще 31 день и все кто поддержать проект сейчас, до его выхода, смогут получить:
🚀 PRO-тариф на 1 год, по цене месячной подписки на релизе.
➕ Доступ к закрытому бета-тесту easyoffer 2.0 (середина–конец мая)
Поддержать проект можно здесь:
https://planeta.ru/campaigns/easyoffer
Огромное спасибо за вашу поддержку! 🤝
4 992
Бизнес образование в Moscow Business Academy (MBA)
Получите современное бизнес образование от международных экспертов.
✅Более 37 направлений обучения.
✅Международные дипломы.
✅Online и очные форматы обучения.
✅Разборы практических бизнес-кейсов.
Скидка на все программы online до 10 декабря!
Узнать больше
#реклама 16+
moscow.mba
О рекламодателе
4 992
Repost from easyoffer
🎉 Краудфандинг easyoffer 2.0 стартовал!
Друзья, с этого момента вы можете поддержать проект и получить существенный бонус:
🚀 PRO-тариф на 1 год, по цене месячной подписки на релизе.
➕ Доступ к закрытому бета-тесту easyoffer 2.0 (середина–конец мая)
Поддержать проект можно здесь:
https://planeta.ru/campaigns/easyoffer
📌 Если не получается оплатить через карту РФ — напишите мне @kivaiko, и мы найдём удобный способ
4 992
🤔 Что такое паттерн Event Sourcing?
Паттерн Event Sourcing (событийное моделирование) — это подход к управлению состоянием приложения, при котором все изменения состояния представляются в виде последовательности событий. Вместо хранения текущего состояния объекта в базе данных, сохраняются все изменения состояния (события), которые произошли с этим объектом. Текущее состояние может быть восстановлено путем последовательного применения этих событий.
🚩Основные концепции Event Sourcing:
🟠События (Events): События представляют собой неизменяемые записи фактов, которые произошли в системе. Каждое событие описывает изменение состояния.
🟠Источники событий (Event Stores): Специальные хранилища, которые сохраняют последовательности событий. Они обеспечивают устойчивость событий и возможность их повторного воспроизведения.
🟠Агрегаты (Aggregates): Логические группы объектов, которые обрабатывают команды и генерируют события.
🟠Команды (Commands): Запросы на выполнение изменений, которые обрабатываются агрегатами и приводят к генерации событий.
🟠Проекционные модели (Projections): Модели, создаваемые из последовательностей событий для представления данных в удобной для чтения форме.
🚩Преимущества Event Sourcing:
🟠Историчность: Все изменения состояния хранятся в виде событий, что позволяет восстановить любое прошлое состояние системы.
🟠Отладка и аудит: Полная история изменений облегчает отладку и проведение аудита.
🟠Производительность: Проекции позволяют оптимизировать запросы к данным.
🟠Гибкость: Возможность пересоздания проекций с новыми требованиями без изменения основного хранилища событий.
🚩Недостатки Event Sourcing:
🟠Сложность: Реализация Event Sourcing требует дополнительных усилий и знаний.
🟠Объем данных: Хранение всех событий может занимать много места.
public class AccountCreated
{
public Guid AccountId { get; }
public string Owner { get; }
public AccountCreated(Guid accountId, string owner)
{
AccountId = accountId;
Owner = owner;
}
}
public class MoneyDeposited
{
public Guid AccountId { get; }
public decimal Amount { get; }
public MoneyDeposited(Guid accountId, decimal amount)
{
AccountId = accountId;
Amount = amount;
}
}
public class MoneyWithdrawn
{
public Guid AccountId { get; }
public decimal Amount { get; }
public MoneyWithdrawn(Guid accountId, decimal amount)
{
AccountId = accountId;
Amount = amount;
}
}
Ставь 👍 и забирай 📚 Базу знаний4 992
Ищешь высокооплачиваемые проекты? Попробуй SkillStaff
SkillStaff — это платформа для ИТ-специалистов, менеджеров и креаторов, которым мало одного оклада. Здесь можно найти клиентов, выполнять их проекты и увеличивать свой доход.
- Проекты с гибким графиком: part time, full time, удаленка и гибрид
- Ставка за час работы — та, что ты сам выбрал
- Клиенты — ведущие бренды, проверенные с юридической точки зрения при регистрации на платформе
- Оплата поступает ежемесячно на расчетный счет исполнителя
- Удобный личный кабинет и функционал, автоматизирующий документооборот
Все, что нужно для работы — иметь статус самозанятого или ИП, а платформа поможет со всеми нюансами.
Регистрируйся прямо сейчас
Зарегистрироваться
#реклама 16+
skillstaff.ru
О рекламодателе
4 992
🤔 Какие есть положительные и отрицательные моменты у микросервиса?
Положительные:
1. Масштабируемость отдельных компонентов.
2. Независимость разработки и деплоя.
3. Устойчивость: сбой одного микросервиса не влияет на другие.
Отрицательные:
1. Сложность управления распределённой системой.
2. Затраты на сетевые взаимодействия.
3. Сложность обеспечения целостности данных.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
4 992
☸️Хотите узнать, как деплоить ASP.NET-приложения в Kubernetes?
📅26 марта в 20:00 мск на открытом вебинаре мы разберем:
– PersistentVolume
– ConfigMap
– Secret
– Развернем БД в кластере и обсудим, почему секреты не такие уж секретные.
С Kubernetes ваши ASP.NET Core-приложения станут масштабируемыми и гибкими.
➡️ Регистрируйтесь на вебинар и получите скидку на курс «C# ASP.NET Core-разработчик»: https://otus.pw/Vvqmt/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
4 992
Бесплатное льготное обучение: 3 месяца
Ищем людей, которые хотят обучиться и работать в IT-сфере из дома
В конце обучения вы пройдете стажировку и устроитесь на работу с зп от 150.000 рублей
Образование, место жительства, трудовой стаж — не важны!
Для старта нужно:
— пройти короткий тест
— заполнить анкету
На что можно рассчитывать, после обучения:
✅ удаленная работа
✅ зп от 150.000 рублей (потолка нет)
✅ стабильная подработка, если не хотите уходить с основной работы
⚡ Осталось всего 47 бесплатных мест. Успейте пройти тест и оставить заявку:
Узнать больше
#реклама 16+
technolium.ru
О рекламодателе
4 992
🤔 Если в двух переменных хранится одинаковое значение, то будут ли они равны?
Сравнение значений переменных может зависеть от типа данных, хранящихся в этих переменных, и от способа их сравнения.
🟠Примитивные типы (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
Ставь 👍 и забирай 📚 Базу знаний