C# | Вопросы собесов
Ir al canal en Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Mostrar más5 011
Suscriptores
-124 horas
-37 días
+1430 días
Archivo de publicaciones
5 011
Ищешь высокооплачиваемые проекты? Попробуй SkillStaff
SkillStaff — это платформа для ИТ-специалистов, менеджеров и креаторов, которым мало одного оклада. Здесь можно найти клиентов, выполнять их проекты и увеличивать свой доход.
- Проекты с гибким графиком: part time, full time, удаленка и гибрид
- Ставка за час работы — та, что ты сам выбрал
- Клиенты — ведущие бренды, проверенные с юридической точки зрения при регистрации на платформе
- Оплата поступает ежемесячно на расчетный счет исполнителя
- Удобный личный кабинет и функционал, автоматизирующий документооборот
Все, что нужно для работы — иметь статус самозанятого или ИП, а платформа поможет со всеми нюансами.
Регистрируйся прямо сейчас
Зарегистрироваться
#реклама 16+
skillstaff.ru
О рекламодателе
5 011
🤔 Какие есть положительные и отрицательные моменты у микросервиса?
Положительные:
1. Масштабируемость отдельных компонентов.
2. Независимость разработки и деплоя.
3. Устойчивость: сбой одного микросервиса не влияет на другие.
Отрицательные:
1. Сложность управления распределённой системой.
2. Затраты на сетевые взаимодействия.
3. Сложность обеспечения целостности данных.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 011
☸️Хотите узнать, как деплоить 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
5 011
Бесплатное льготное обучение: 3 месяца
Ищем людей, которые хотят обучиться и работать в IT-сфере из дома
В конце обучения вы пройдете стажировку и устроитесь на работу с зп от 150.000 рублей
Образование, место жительства, трудовой стаж — не важны!
Для старта нужно:
— пройти короткий тест
— заполнить анкету
На что можно рассчитывать, после обучения:
✅ удаленная работа
✅ зп от 150.000 рублей (потолка нет)
✅ стабильная подработка, если не хотите уходить с основной работы
⚡ Осталось всего 47 бесплатных мест. Успейте пройти тест и оставить заявку:
Узнать больше
#реклама 16+
technolium.ru
О рекламодателе
5 011
🤔 Если в двух переменных хранится одинаковое значение, то будут ли они равны?
Сравнение значений переменных может зависеть от типа данных, хранящихся в этих переменных, и от способа их сравнения.
🟠Примитивные типы (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
Ставь 👍 и забирай 📚 Базу знаний5 011
😱Станьте C#-разработчиком с нуля!
Хотите освоить программирование, но не знаете, с чего начать? C# — это язык, на котором создают игры, веб-сервисы и корпоративные приложения.
🚀Обучение «C# Developer» в OTUS — это:
– Путь с 0 до Middle за 12 месяцев, а позицию Junior вы сможете занять уже через 6 месяцев с начала обучения.
– Только актуальные живые занятия с экспертами, без старых записанных лекций.
– Обучение в Scrum-командах на реальных кейсах.
– Полная поддержка преподавателей, наставников и менторов.
Программистами не рождаются, ими становятся.
👉Оставьте заявку прямо сейчас и получите скидку на обучение: https://otus.pw/l1Xn/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
5 011
Дарим подписку на Яндекс Музыку
Ответьте на 1 вопрос и Яндекс Музыка ваша для вас и 3-х ваших близких.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте бесплатно❤️
Попробовать
#реклама 18+
music.yandex.ru
О рекламодателе
Реклама на Яндексе
5 011
🤔 Для чего нужны нереляционные базы данных?
Нереляционные базы данных (NoSQL) используются для работы с большими объёмами данных, структурированных или неструктурированных, а также для обеспечения гибкости и масштабируемости. Они подходят для хранения документов, ключей-значений, графов или временных рядов. Такие базы, как MongoDB или Redis, идеальны для приложений с динамической структурой данных или высокой нагрузкой.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 011
Repost from easyoffer
На easyoffer 2.0 появится:
База тестовых заданий
🟠Тестовые задания для разных грейдов
🟠Фильтрация тестовых заданий по технологиям и компаниям
Когда я только начинал учиться на программиста, я постоянно выдумывал себе задачи для практики и тратил на это много времени. Но только в момент поиска работы я столкнулся с тестовыми заданиями, и понял насколько круто они прокачивают навыки. Нужно было еще на этапе обучения пробовать их делать. Все компании стараются составить тестовое задание "под себя", это дает большой выбор в тематике задач и технологий. На easyoffer 2.0 вы сможете отфильтровать тестовые задания по навыкам/грейдам и найти те, что подходят лично вам для практики.
В течение 1-2 дней я объявлю о краудфандинг кампании, чтобы ускорить разработку easyoffer 2.0. Все кто, поддержал проект на этом этапе смогу получить 1 год доступа к сайту по цене месячной подписки и смогут попасть на закрытое бета-тестирование. А первые 150 донатеров получать особо-выгодную цену и бонус.
🚀 Следите за стартом 👉 в этом телеграм канале, в нем информация о старте будет опубликована за 6 часов до официального начала.
5 011
Большая онлайн-конференция UserGate OpenConf
⚡ ИТ-конференция про защиту в открытую.
Диалог между заказчиками, партнерами, экспертами и специалистами в сфере продуктов, технологий и услуг информационной безопасности.
Зарегистрироваться
#реклама 16+
openconf.usergate.com
О рекламодателе
5 011
🤔 Что такое инверсия зависимостей?
Инверсия зависимостей — это принцип SOLID, который говорит:
> Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
Это значит, что вместо жёстких зависимостей на конкретные классы, код должен работать через абстракции (
interface или abstract class).
🚩Проблема без инверсии зависимостей
Допустим, у нас есть класс EmailSender, который отправляет письма:
public class EmailSender
{
public void Send(string message)
{
Console.WriteLine($"Отправка email: {message}");
}
}
public class NotificationService
{
private EmailSender _emailSender = new EmailSender();
public void Notify(string message)
{
_emailSender.Send(message);
}
}
🚩Решение: Инверсия зависимостей
Чтобы избавиться от жёсткой зависимости, вводим абстракцию (IMessageSender):
public interface IMessageSender
{
void Send(string message);
}
public class EmailSender : IMessageSender
{
public void Send(string message)
{
Console.WriteLine($"Отправка email: {message}");
}
}
public class SmsSender : IMessageSender
{
public void Send(string message)
{
Console.WriteLine($"Отправка SMS: {message}");
}
}
Теперь NotificationService зависит не от конкретного класса, а от интерфейса:
public class NotificationService
{
private readonly IMessageSender _messageSender;
public NotificationService(IMessageSender messageSender)
{
_messageSender = messageSender;
}
public void Notify(string message)
{
_messageSender.Send(message);
}
}
Теперь мы можем подставлять любую реализацию IMessageSender:
var emailNotifier = new NotificationService(new EmailSender());
emailNotifier.Notify("Привет через Email!");
var smsNotifier = new NotificationService(new SmsSender());
smsNotifier.Notify("Привет через SMS!");
Вывод
Отправка email: Привет через Email! Отправка SMS: Привет через SMS!🚩Преимущества инверсии зависимостей Гибкость – можно легко заменять зависимости. Тестируемость – можно подставить Mock-объект вместо
EmailSender.
Меньше изменений в коде – можно добавить новые способы отправки сообщений без изменения NotificationService.
Ставь 👍 и забирай 📚 Базу знаний5 011
Митап для мобильных разработчиков от команды Алисы
«Алиса, открой багажник!» — как голосовая команда превращается в действие, а автомобиль «оживает»? Со стороны всё выглядит просто, но внутри огромный стек технологий. Об этом и поговорим 4 апреля на встрече с командой Яндекс Авто.
Вас ждут:
✅Три технических доклада — приоткроем завесу тайны взаимодействия Алисы с Automotive;
✅Нетворкинг с экспертами из разных компаний;
✅Классные сувениры на память.
Регистрация уже открыта — заполняйте заявку и зовите коллег!
До встречи 4 апреля в Нижнем Новгороде!
Узнать больше
#реклама
events.yandex.ru
О рекламодателе
Реклама на Яндексе
5 011
🤔 Каким образом EF загружает сущность в базу данных?
При сохранении сущности EF Core анализирует все изменения, формирует соответствующие SQL-запросы (например, INSERT, UPDATE или DELETE), отправляет их в базу данных и затем обновляет состояние объектов в памяти, чтобы отразить изменения.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 011
🤔 Если мы используем Ref & out, то становится ли эта структура ссылочным типом?
Нет, структура (
struct) не становится ссылочным типом, даже если мы передаём её через ref или out. Однако, когда структура передаётся с ref или out, передаётся сама структура (по ссылке), а не её копия. Это позволяет изменять исходный объект напрямую, избегая копирования.
🚩Разница между обычной передачей и передачей через `ref`
Передача структуры без ref (по значению, копируется)
struct Point
{
public int X;
public int Y;
}
void ChangePoint(Point p)
{
p.X = 100;
}
Point myPoint = new Point { X = 10, Y = 20 };
ChangePoint(myPoint);
Console.WriteLine(myPoint.X); // 10 (НЕ изменилось, потому что была копия)
Передача структуры с ref (по ссылке, изменения сохраняются)
void ChangePointRef(ref Point p)
{
p.X = 100;
}
ChangePointRef(ref myPoint);
Console.WriteLine(myPoint.X); // 100 (значение изменилось)
🚩Что насчёт `out`?
out работает так же, как ref, но требует обязательной инициализации внутри метода.
void InitPoint(out Point p)
{
p = new Point { X = 50, Y = 50 }; // Обязательно присвоить значение
}
Point newPoint;
InitPoint(out newPoint);
Console.WriteLine(newPoint.X); // 50
Ставь 👍 и забирай 📚 Базу знаний5 011
Открыть бизнес? Конечно, со Сбером!
За 0₽ любой тариф расчётно-кассового обслуживания на месяц, выбирайте тот, который больше всего подойдёт вашему делу.
А также:
✅ бесплатные сервисы для ведения бизнеса: бухгалтерия для ИП, юрподдержка, электронный документооборот, отчётность в госорганы и многое другое. Всё, чтобы вам было удобно!
✅ специальные условия для тех, кто ведёт бизнес на маркетплейсах: безлимитные переводы на счета физлиц без комиссии.
Откройте счёт онлайн или в любом нашем офисе.
Узнать больше
Финансовые услуги оказывает: ПАО Сбербанк.
#реклама
sberbank.com
О рекламодателе
5 011
🤔 Как происходит кэширование в EF Core?
EF Core использует кэширование на уровне контекста, то есть запрашиваемые сущности хранятся в памяти в пределах одного DbContext. Если та же сущность запрашивается повторно, она возвращается из кэша, а не загружается заново из базы данных. Однако этот кэш существует только в пределах одного экземпляра контекста и не сохраняется между запросами.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 011
👩💻 DotNet Developer Blog – практические кейсы и реальные решения!
В Telegram-канале DotNet Developer Blog публикуются реальные примеры и опыт .NET-разработки:
✅ Как писать надежные и отказоустойчивые приложения на .NET
✅ Тестирование, в т.ч. с помощью Copilot: ускоряем написание тестов и повышаем качество кода
✅ Рефакторинг и переезд с легаси – разбор реальных кейсов
✅ Лучшие практики и реальные примеры из продакшена
💡 Без воды – только практические решения и полезные инсайты!
Подписывайся 👉 @dotnetdevblog
Действительно полезные посты каждую неделю
5 011
Repost from easyoffer
На easyoffer 2.0 появится:
Тренажер "Реальное собеседование"
🟠 Сценарии вопросов из реального собеседования
🟠Возможность подготовиться к собеседованию в конкретную компанию
🟠Итоговая статистика (прошёл/не прошёл)
Сценарий вопросов взят из реального собеседования. То есть вы тренируетесь на тех вопросах, которые действительно задавались в компании X.
Уже в начале следующей недели стартует краудфандинг кампания, чтобы ускорить разработку easyoffer 2.0. Все кто, поддержал проект на этом этапе смогу получить 1 год доступа к сайту по цене месячной подписки. Первые 150 донатеров получать особо-выгодную цену и бонус. Следите за стартом 👉 в этом телеграм канале, в нем информация о старте будет опубликована за 6 часов до официального начала.
5 011
🤔 Что такое 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Ставь 👍 и забирай 📚 Базу знаний
5 011
⚡️ Айтишник из «VISION» скупил курсы айти школ и выложил гигабайты материалов к себе
Каждый найдет что-то по душе:
1202 ГБ — Python
1811 ГБ — Frontend
1100 ГБ — C / C++ / C#
804 ГБ — Java
411 ГБ — SQL & БД
309 ГБ — DevOps
998 ГБ — ИБ & Хакинг
773 ГБ — Kotlin / Swift
189 ГБ — PHP
201 ГБ — GoLang
170 ГБ — Rust
167 ГБ — QA / Тестирование
310 ГБ — 1C + Лицензии
495 ГБ — Машинное обучение
704 ГБ — Аналитика Данных
991 ГБ — Дизайн
Материалы в закрепе, постоянно пополняются👆🏻
