uz
Feedback
C# | Вопросы собесов

C# | Вопросы собесов

Kanalga Telegram’da o‘tish

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv

Ko'proq ko'rsatish
5 009
Obunachilar
-224 soatlar
-117 kunlar
-5730 kunlar
Postlar arxiv
🤔 Интерполяция - это возможность использовать в строке переменные? Да, интерполяция строк — это удобный способ вставки значений переменных в строку без использования конкатенации (+) или String.Format(). Простой пример интерполяции строк
string name = "Иван";
int age = 25;

string message = $"Привет, меня зовут {name}, и мне {age} лет.";
Console.WriteLine(message);
Вывод
Привет, меня зовут Иван, и мне 25 лет.
🚩Дополнительные возможности интерполяции 🟠Форматирование значений Можно форматировать числа и даты прямо в строке:
double price = 99.99;
DateTime today = DateTime.Now;

string formatted = $"Цена: {price:C}, Дата: {today:dd.MM.yyyy}";
Console.WriteLine(formatted);
Вывод
Цена: 99,99 ₽, Дата: 01.03.2025
🟠Выполнение выражений Можно вставлять даже арифметические операции и вызовы методов:
int a = 10, b = 5;
string mathResult = $"Сумма: {a + b}, Разница: {a - b}";
Console.WriteLine(mathResult);
Вывод
Сумма: 15, Разница: 5
🟠Экранирование фигурных скобок Если нужно вывести {} в тексте, их надо удваивать:
Console.WriteLine($"JSON: {{ \"name\": \"Иван\" }}");
Вывод
JSON: { "name": "Иван" }
Ставь 👍 и забирай 📚 Базу знаний

Repost from easyoffer
На easyoffer 2.0 появится новый раздел: Задачи с собеседований 🟠Задачи на Алгоритмические, Live-coding и System Design из ре
На easyoffer 2.0 появится новый раздел: Задачи с собеседований 🟠Задачи на Алгоритмические, Live-coding и System Design из реальных собеседований 🟠Вероятность встретить ту или иную задачу 🟠Возможность подготовиться к задачам конкретной компании Есть много сайтов, на которых можно тренироваться решать задачи, но у них у всех одна проблема – сами задачи люди просто выдумывают. На easyoffer 2.0 вы сможете готовиться к live-coding и system design секциям на основе задач из реальных собеседований. Вы можете найдете самые частые задачи и сделаете упор на их решение. Считаные дни остались до старта краудфандинговой кампании, чтобы ускорить разработку easyoffer 2.0. Все кто, поддержал проект на этом этапе смогу получить 1 год доступа к сайту по цене месячной подписки, а те кто поддержат проект раньше других ито дешевле + получат существенный бонус. Следите за стартом 👉 в этом телеграм канале.

Хотите освоить востребованную профессию в IT? 💻 Откройте новые возможности в IT с гарантированным трудоустройством! Обучение
Хотите освоить востребованную профессию в IT? 💻 Откройте новые возможности в IT с гарантированным трудоустройством! Обучение под руководством экспертов Стажировка в реальных проектах Гибкий график: совмещайте с бизнесом или работой После обучения вы получите: ✅ Удалённую работу в ведущих компаниях ✅ Доход от 150 000 ₽, без ограничений по росту ✅ Возможность работать в комфортных условиях и управлять своим временем ⚡ Осталось 47 мест Успейте подать заявку: Узнать больше #реклама 16+ technolium.ru О рекламодателе

🤔 Какие есть конкурентные коллекции? Конкурентные коллекции позволяют безопасно работать с данными в многопоточной среде: - ConcurrentDictionary<TKey, TValue> – потокобезопасный словарь. - ConcurrentQueue<T> – потокобезопасная очередь FIFO. - ConcurrentStack<T> – потокобезопасный стек LIFO. - BlockingCollection<T> – использует внутреннюю коллекцию с возможностью блокировки при добавлении или извлечении. - ConcurrentBag<T> – потокобезопасная неупорядоченная коллекция. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Приведи пример паттерна строитель в С# Паттерн "Строитель" (Builder) используется для пошагового создания сложных объектов. Он удобен, когда объект имеет много параметров и возможных конфигураций. 🚩Проблема без паттерна "Строитель" Допустим, у нас есть класс Car, и мы хотим создавать машины с разными конфигурациями:
public class Car
{
    public string Engine { get; set; }
    public int Wheels { get; set; }
    public bool HasSunroof { get; set; }

    public override string ToString()
    {
        return $"Car: Engine={Engine}, Wheels={Wheels}, Sunroof={HasSunroof}";
    }
}
Создавать объект через конструкторы или инициализаторы становится неудобно, если у нас много параметров:
var car1 = new Car { Engine = "V8", Wheels = 4, HasSunroof = true };
var car2 = new Car { Engine = "V6", Wheels = 4, HasSunroof = false };
🚩Решение с использованием паттерна "Строитель" Сделаем пошаговый процесс сборки объекта с помощью паттерна "Строитель". Шаг 1: Создаём интерфейс строителя
public interface ICarBuilder
{
    ICarBuilder SetEngine(string engine);
    ICarBuilder SetWheels(int wheels);
    ICarBuilder SetSunroof(bool hasSunroof);
    Car Build();
}
Шаг 2: Реализуем конкретного строителя
public class CarBuilder : ICarBuilder
{
    private Car _car = new Car(); // Временный объект

    public ICarBuilder SetEngine(string engine)
    {
        _car.Engine = engine;
        return this; // Возвращаем самого себя для цепочки вызовов
    }

    public ICarBuilder SetWheels(int wheels)
    {
        _car.Wheels = wheels;
        return this;
    }

    public ICarBuilder SetSunroof(bool hasSunroof)
    {
        _car.HasSunroof = hasSunroof;
        return this;
    }

    public Car Build()
    {
        return _car; // Возвращаем готовый объект
    }
}
Шаг 3: Используем строителя
class Program
{
    static void Main()
    {
        ICarBuilder builder = new CarBuilder();

        Car sportsCar = builder
            .SetEngine("V8")
            .SetWheels(4)
            .SetSunroof(true)
            .Build();

        Car economyCar = builder
            .SetEngine("V4")
            .SetWheels(4)
            .SetSunroof(false)
            .Build();

        Console.WriteLine(sportsCar);
        Console.WriteLine(economyCar);
    }
}
Вывод в консоли
Car: Engine=V8, Wheels=4, Sunroof=True
Car: Engine=V4, Wheels=4, Sunroof=False
Ставь 👍 и забирай 📚 Базу знаний

Как синхронизировать команду? Пригласить в Битрикс24. Бесплатный онлайн-сервис для бизнеса и совместной работы. Мессенджер, CRM для продаж, Видеозвонки, Задачи, Календарь, Файлы и ИИ-помощник. Заберите бесплатно 10+ инструментов в одном сервисе. Зарегистрироваться #реклама 16+ office-online.bitrix24.ru О рекламодателе

🤔 Каким образом запускается сборка мусора? Сборка мусора в .NET запускается автоматически по трем основным причинам: 1. Когда выделяется слишком много памяти в Generation 0. 2. Если приложение выполняет GC.Collect(), но это не рекомендуется без необходимости. 3. Когда система испытывает нехватку памяти и операционная система сигнализирует об этом. GC использует алгоритмы Mark-and-Sweep и Compact, удаляя объекты, на которые нет ссылок, и сжимая память. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Когда подрядчик тележится, добавляйте его в Коллабу Битрикс24 Коллабы – платформа для эффективной работы с подрядчиками. Тут
Когда подрядчик тележится, добавляйте его в Коллабу Битрикс24 Коллабы – платформа для эффективной работы с подрядчиками. Тут обсуждения превращаются в задачи, а видео созвон можно собрать одной кнопкой. Любой проект можно разложить по полочкам с понятным ТЗ и обозначенными сроками. Работайте в Битрикс24 и создавайте Коллабы с подрядчиками. Начать #реклама 16+ collabs.bitrix24.ru О рекламодателе

🤔 В чем разница между переменными const, readonly и static? В C# const, readonly используются для разных целей и имеют разные характеристики. Давайте рассмотрим различия между ними. 🚩`const` Поле, объявленное как const, является константой и должно быть инициализировано во время объявления. Значение const поля не может быть изменено после компиляции. Область применения Константы компилируются в код и становятся частью метаданных сборки. Они не могут быть изменены в процессе выполнения программы. Тип данных const поддерживает только примитивные типы данных, строки и enum.
public class MyClass
{
    public const int MyConst = 10;
}
🚩`readonly` Поле, объявленное как readonly, может быть инициализировано либо во время объявления, либо в конструкторе. Значение readonly поля может быть изменено только в конструкторе и не может быть изменено после этого. Область применения readonly поля используются для значений, которые должны быть неизменными после инициализации объекта, но могут различаться между экземплярами класса. Тип данных readonly поддерживает любые типы данных.
public class MyClass
{
    public readonly int MyReadonly;

    public MyClass(int value)
    {
        MyReadonly = value;
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Онлайн-интенсив для ИТ-специалистов в Открытых школах Т1 Открытые школы Т1 — карьерная программа для начинающих ИТ-специалистов от ИТ-холдинга Т1. Это ИТ-интенсив без отрыва от работы и карьерный трек в Т1 для лучших выпусников. Что тебя ждет? ✅ Бесплатный онлайн-интенсив с топовыми преподавателями ✅ Практические задачи и индивидуальная обратная связь ✅ Поддержка HR и знакомство с ИТ-командами Т1 ✅ Карьерный фаст-трек: навыки для роста из джуна в мидла ✅ Реальный шанс получить оффер в ИТ-холдинг Т1 Более 1000 специалистов уже прошли этот путь — теперь твоя очередь! Подавай заявку до 11 апреля и приходи учиться! Старт ИТ-интенсива уже 14 апреля. Подать заявку #реклама 16+ t1.ru О рекламодателе

🤔 Для чего нужно разделение в куче на три поколения? Разделение памяти кучи на три поколения (Generation 0, 1, 2) в сборщике мусора (Garbage Collector, GC) помогает оптимизировать очистку памяти. - Generation 0 – содержит объекты, которые создаются недавно и быстро умирают. Очистка происходит часто и быстро. - Generation 1 – промежуточное поколение для объектов, которые пережили первую сборку мусора. - Generation 2 – для долгоживущих объектов, которые редко удаляются (например, кеши, синглтоны). Очистка происходит реже, но дольше. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Простой тест для выбора профессии в IT Пройдите тест на профессию и забирайте: ✅ Бесплатную карьерную консультацию с эксперто
Простой тест для выбора профессии в IT Пройдите тест на профессию и забирайте: ✅ Бесплатную карьерную консультацию с экспертом ✅ Доступ к чат-боту с гайдами по профессиям и заданиями для самопроверки ✅ Мини-курсы для погружения в IT и дизайн, чтобы точнее выбрать направление ✨130 000 человек уже прошли профтестирование и выбрали перспективную профессию в IT или дизайне Пройдите тест бесплатно за 5 минут! Начать #реклама 16+ free.skillfactory.ru О рекламодателе

📺 Уникальная база IT собеседований 456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы. Е
📺 Уникальная база IT собеседований 456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы. Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д. 🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

🤔 Что такое индексы, какие типы бывают, использовал ли их на практике? Это структуры данных, которые улучшают скорость операций выборки данных, но могут снижать производительность операций вставки, удаления и обновления из-за необходимости поддержания индекса в актуальном состоянии. Могут быть построены на одном или нескольких столбцах таблицы и позволяют быстро находить строки без необходимости сканирования всей таблицы. 🚩Типы 🟠Одиночные индексы (Single-column indexes) Индексируют значения одного столбца таблицы. Это основной тип индекса, используемый для ускорения запросов, фильтрующих или сортирующих данные по одному столбцу. 🟠Составные индексы (Composite indexes) Индексируют значения, основанные на нескольких столбцах. Они полезны, когда операции выборки, сортировки или объединения таблиц часто используют одни и те же комбинации столбцов. 🟠Уникальные индексы (Unique indexes) Гарантируют, что индексируемые значения уникальны. Они часто используются для обеспечения уникальности столбцов или набора столбцов в таблице. 🟠Полнотекстовые индексы (Full-text indexes) Позволяют проводить полнотекстовый поиск по текстовым данным в базе данных. Они оптимизированы для поиска слов в больших текстовых полях и часто используются в системах, где требуется поиск по содержимому статей, блогов и других текстовых документов. 🟠Пространственные индексы (Spatial indexes) Используются для индексации пространственных данных, таких как географические объекты. Они оптимизируют запросы, включающие пространственные операции, такие как нахождение объектов внутри заданной области. 🚩Осмысленное использование 🟠Анализ запросов Использование индексов должно начинаться с анализа наиболее часто выполняемых запросов и понимания структуры данных. Профилирование и анализ планов выполнения запросов помогут определить, где индексы могут быть полезны. 🟠Сбалансированное использование Несмотря на преимущества ускорения чтения, индексы добавляют накладные расходы на операции записи. Каждая операция вставки, удаления или изменения данных требует обновления индексов, что может замедлить эти операции. 🟠Обслуживание индексов С течением времени индексы могут фрагментироваться, особенно в активно изменяемых базах данных. Регулярное обслуживание, такое как реорганизация и перестроение индексов, помогает поддерживать их производительность на оптимальном уровне. Ставь 👍 и забирай 📚 Базу знаний

Repost from easyoffer
На easyoffer 2.0 появится: 🎯 Тренажер "Проработка вопросов" ✅ Метод интервальных повторений и флеш-карточки ✅ Персональный подход изучения на основе ваших ответов ✅ Упор на самые частые вопросы 📌 Интервальные повторения по карточкам это научно доказанный метод эффективного обучения. Каждая карточка – это вопрос, который задают на собеседовании, вы можете выбрать "Не знаю", "Знаю", "Не спрашивать". После ответа вам показывается правильный ответ и возможность изучить вопрос подробнее (примеры ответов других людей). От ваших ответов зависит то, как часто карточки будут показываться на следующей тренировке. Трудные вопросы показываются чаще, простые – реже. Это позволяет бить в слабые места. Кроме того, изначальный порядок карточек зависит от частотности (вероятности встретить вопрос). 🚀 Благодаря этому тренажеру вы сможете очень быстро подготовиться к собеседованию, т.к. фокусируетесь отвечать на самые частые вопросы. Именно так готовился я сам, когда искал первую работу программистом. Уже в течение недели я объявлю о старте краудфандинговой кампании на сбор финансирования, чтобы ускорить разработку сайта. Все кто поддержит проект до официального релиза получат самые выгодные условия пользования сервисом. А именно 1 год доступа к сайту по цене месячной подписки. ‼️ Очень важно, чтобы как можно больше людей поддержали проект в первые дни, по-этому те кто окажет поддержку первыми получат еще более выгодную стоимость на годовую подписку и существенный 💎 бонус о котором я позже расскажу в этом телеграм канале. Подписывайтесь, чтобы узнать о старте проекта раньше других и воспользоваться лимитированными вознаграждениями.

Крупнейший университет искусственного интеллекта Приглашаем на бесплатный однодневный интенсив по AI! Освой искусственный инт
Крупнейший университет искусственного интеллекта Приглашаем на бесплатный однодневный интенсив по AI! Освой искусственный интеллект для профессионального роста: создавай нейросети, автоматизируй бизнес-задачи и зарабатывай на AI-решениях. ✨ 8 000+ студентов со всего мира ✨ 600+ AI-проектов, созданных студентами ✨ Сборная Университета — победители крупнейших AI-хакатонов России ✨ Стажировки в крупнейших компаниях России (РЖД, Ростелеком, РУДН, Совкомбанк, Самолет и другие) ✨ Трудоустраиваем выпускников в крупнейшие компании (Яндекс, ВТБ, Сбербанк, Роскосмос и другие) Будем рады видеть тебя в наших рядах! Узнать больше #реклама 16+ neural-university.ru О рекламодателе

🤔 Чем отличается ссылочный и значимый тип? Ссылочные типы хранят адрес объекта в памяти, а значимые – непосредственно значение. Изменение значимого типа не затрагивает другие переменные, тогда как при изменении ссылочного типа модифицируется сам объект, доступный по ссылке. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Пример выполнения кода, когда возвращается объект интерфейса Iqueryable? IQueryable<T> — это интерфейс, который используется для отложенного выполнения запросов (deferred execution). Он позволяет строить SQL-запросы к базе данных или манипулировать данными в памяти, но сам запрос выполняется только в момент его итерации (ToList(), FirstOrDefault(), Count(), и т. д.). 🚩Пример работы с `IQueryable<T>` на Entity Framework Core Предположим, у нас есть сущность Product и контекст базы данных AppDbContext
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

public class AppDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("YourConnectionString");
    }
}
Теперь создадим репозиторий, который возвращает IQueryable<Product>
public class ProductRepository
{
    private readonly AppDbContext _context;

    public ProductRepository(AppDbContext context)
    {
        _context = context;
    }

    public IQueryable<Product> GetProducts()
    {
        return _context.Products.Where(p => p.Price > 100); 
        // Запрос не выполняется здесь! Только формируется
    }
}
🚩Вызов метода и выполнение запроса Запрос к базе данных выполнится только при материализации (ToList(), FirstOrDefault(), Count(), и т. д.).
var repository = new ProductRepository(new AppDbContext());

// Создаём IQueryable-запрос
IQueryable<Product> query = repository.GetProducts();

// Добавляем дополнительное условие (запрос еще НЕ выполнен)
query = query.OrderBy(p => p.Name);

// Теперь выполняем запрос к БД
List<Product> products = query.ToList(); // SQL-запрос отправляется в базу
Ставь 👍 и забирай 📚 Базу знаний

Начните диджитал-карьеру: бесплатные уроки с практикой Десятки курсов по десяткам профессий: вводные части бесплатно, чтобы определиться. Попробовать #реклама start.practicum.yandex О рекламодателе

🤔 Какие паттерны GoF приходилось использовать? Паттерны GoF (Gang of Four) включают порождающие, структурные и поведенческие паттерны. Чаще всего используются Singleton, Factory, Observer, Adapter и Strategy, которые решают задачи управления зависимостями, расширяемости и инкапсуляции. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний