en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

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

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

Open in Telegram

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

Show more
5 006
Subscribers
-124 hours
-107 days
-230 days
Posts Archive
📌 Что такое middleware в ASP.NET core? 💬 Спрашивают в 67% собеседований Middleware — это программные компоненты, которые выполняются при каждом запросе к приложению и обрабатываются в определенном порядке в виде конвейера. Эти компоненты могут выполнять различные задачи, такие как аутентификация, логирование, обработка ошибок, управление сессиями, и многое другое. Он позволяет добавлять и настраивать функциональность приложения в точках, через которые проходит HTTP-запрос или ответ. 🤔 Как он работает? Каждый его компонент имеет возможность обработать запрос перед тем, как он будет передан следующему компоненту в конвейере, а также может изменять ответ после выполнения последующих компонентов. Такая архитектура позволяет создавать легко расширяемые и модульные приложения. Middleware конфигурируется в методе Configure класса Startup. Порядок, в котором компоненты middleware добавляются в конвейер с помощью метода Use..., определяет порядок их выполнения при обработке запроса и ответа. 🤔 Пример:
public class MyMiddleware
{
    private readonly RequestDelegate _next;

    public MyMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        // До вызова следующего компонента в конвейере
        Console.WriteLine("Before");

        await _next(context); // Передача управления следующему middleware

        // После возвращения управления от следующих компонентов
        Console.WriteLine("After");
    }
}

// Регистрация middleware в Startup.cs
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseMiddleware<MyMiddleware>();
    // Другие компоненты middleware
}
Middleware часто используют для следующих задач: ➕Аутентификация и авторизация: проверка пользовательских данных и определение прав доступа. ➕Логирование: запись информации о запросах и ответах для последующего анализа. ➕Обработка ошибок: централизованная обработка исключений и формирование соответствующих ответов клиенту. ➕Управление сессиями и куками: поддержка пользовательских сессий и управление куками. ➕Статические файлы: обработка запросов к статическим файлам, таким как HTML, CSS, изображения. Middleware обеспечивает гибкую и мощную систему для управления потоком HTTP-запросов и ответов, позволяя разработчикам легко добавлять и настраивать необходимую функциональность в своих веб-приложениях. 🤔 Краткий ответ: Middleware в ASP.NET Core — это компоненты, которые работают с каждым запросом и ответом в приложении, формируя конвейер для обработки HTTP-сообщений. Они позволяют добавлять нужную функциональность, например, для логирования, аутентификации или обработки ошибок, делая приложение модульным и легко поддерживаемым. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает? Психолог взрослого человек
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает? Психолог взрослого человека - канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам. ✔️ Как научиться отвлекаться от работы и отдыхать? ✔️ Как совместить кучу рабочих задач и время с семьей? ✔️ Как справиться с прокрастинацией? ✔️ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит? Подписывайтесь на канал @vadimpetrov_psy и научитесь работать без упахивания, выгорания и ущерба для личной жизни! 👨🏻‍💻 Псс. Заходите в закреп канала - там много полезного, и даже бесплатный мини-курс. https://t.me/+_f2HiZ99wxswZGRi

Окупите внедрение CRM Битрикс24 - за несколько месяцев! За счет чего вырастит Ваша прибыль после настройки Битрикс24 в KISELE
Окупите внедрение CRM Битрикс24 - за несколько месяцев! За счет чего вырастит Ваша прибыль после настройки Битрикс24 в KISELEV GROUP? 1. Понятная аналитика для отдела продаж в режиме online: Руководитель отдела продаж и собственник получают понятную аналитику, которая позволяет видеть слабые места и вовремя принимать управленческие решения. 2. 3-х точечная система контроля менеджеров: Сконцентрируем фокус менеджеров на продажах и дадим руководителям готовые инструменты для контроля за сделками и задачами. 3. Совместим работу всех отделов в одной системе: Выстроим коммуникацию внутри компании между отделами с хранением базы данных. Ускорим согласование документов и счетов. Запишитесь на экскурсию в нашу - идеально настроенную - CRM Битрикс24! Забронировать #реклама 16+ kiselevgroup.com О рекламодателе

🤔 Что означает ключевое слово sealed в объявлении класса?
Anonymous voting

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

📌 Что такое лямбда выражения в С#? 💬 Спрашивают в 56% собеседований 🤔 Лямбда-выражения — это сокращённый способ записи анонимных методов, то есть методов без имени. Эти выражения особенно полезны для создания небольших функций, которые можно передавать в качестве аргументов или использовать в качестве типов делегатов. Они упрощают код и делают его более читаемым, особенно когда речь идёт о работе с коллекциями или асинхронном программировании. 🤔 Основной синтаксис лямбда-выражения:
параметры => выражение
Где => называется лямбда оператором, который можно прочесть как "переходит к". 🤔 Пример без параметров:
() => Console.WriteLine("Привет, мир!");
🤔 Пример с одним параметром:
x => x * x; // Возвращает квадрат x
🤔 Пример с несколькими параметрами:
(x, y) => x + y; // Складывает x и y
🤔 Зачем они нужны? Лямбда-выражения особенно полезны в LINQ (Language Integrated Query), где они используются для создания кратких и выразительных запросов к данным. Например, чтобы выбрать все положительные числа из списка, можно использовать лямбда-выражение следующим образом:
List<int> числа = new List<int> { -1, 0, 1, 2, 3, 4, 5 };
var положительныеЧисла = числа.Where(x => x > 0).ToList();

foreach (var число in положительныеЧисла)
{
    Console.WriteLine(число);
}
Лямбда-выражения также могут быть использованы для создания делегатов в событийно-ориентированных или асинхронных программах, делая код более лаконичным и легко читаемым. 🤔 Краткий ответ: Лямбда-выражения предоставляют мощный и гибкий способ работы с функциями, позволяя писать компактный и выразительный код. Они идеально подходят для выполнения операций с коллекциями, асинхронного программирования и везде, где требуется краткость и выразительность. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🥰 Как улучшить свой код 🥰 Настрой среду, в которой ты работаешь! 🥰 Многие программисты пишут код на настройках по умолчани
🥰 Как улучшить свой код 🥰 Настрой среду, в которой ты работаешь! 🥰 Многие программисты пишут код на настройках по умолчанию - ошибка. 🥰 Не подключают плагины, которые ускорят работу и увеличат эффективность - фатальная ошибка. 👩‍💻 Канал Visual Studio Сode | Плагины сделает твою рабочую среду универсальным и мощным инструментом. 🥰 Повышай свою эффективность и подписывайся на канал Visual Studio Сode | Плагины

Регистрируйтесь на Yandex Scale 2024! 25 сентября состоится главная конференция Yandex Cloud для тех, кто создаёт цифровые пр
Регистрируйтесь на Yandex Scale 2024! 25 сентября состоится главная конференция Yandex Cloud для тех, кто создаёт цифровые продукты и решения. В этом году мероприятие пройдёт в МХАТ имени М. Горького в Москве и онлайн. 5 технологических треков, 31 доклад, 50 спикеров, нетворкинг — разве это не лучший способ продуктивно провести день? Зарегистрироваться #реклама 16+ scale.yandex.cloud О рекламодателе

🤔 Что из перечисленного нельзя использовать в методе с модификатором async?
Anonymous voting

📌 Что такое сервис локатор? 💬 Спрашивают в 33% собеседований Сервис локатор (Service Locator) — это шаблон проектирования, используемый в программировании для управления зависимостям между компонентами. Шаблон сервис локатора предоставляет централизованный реестр, где компоненты могут регистрировать свои сервисы и услуги, а другие части приложения — искать их по необходимости. Это отличается от инъекции зависимостей, где зависимости передаются компонентам через конструкторы или свойства. 🤔 Ключевые характеристики 1️⃣ Централизованный реестр сервисов: Сервис локатор содержит реестр всех доступных сервисов. Каждый сервис ассоциируется с уникальным ключом или идентификатором. 2️⃣ Получение сервиса по требованию: Компоненты приложения могут запрашивать нужные сервисы из локатора, предоставляя соответствующий ключ или идентификатор. 3️⃣ Управление зависимостями: Сервис локатор помогает управлять зависимостями в приложении, позволяя компонентам работать независимо от конкретных реализаций сервисов, с которыми они взаимодействуют. 🤔 Пример:
public interface IService
{
    void Execute();
}

public class ServiceLocator
{
    private IDictionary<object, IService> services;

    public ServiceLocator()
    {
        services = new Dictionary<object, IService>();
    }

    public void RegisterService<T>(IService service)
    {
        services.Add(typeof(T), service);
    }

    public IService GetService<T>()
    {
        return services[typeof(T)];
    }
}

public class ConcreteService : IService
{
    public void Execute()
    {
        Console.WriteLine("Service Executed");
    }
}

class Program
{
    static void Main()
    {
        ServiceLocator locator = new ServiceLocator();
        locator.RegisterService<IService>(new ConcreteService());

        IService service = locator.GetService<IService>();
        service.Execute();  // Output: Service Executed
    }
}
🤔 Преимущества: ➕Гибкость: Компоненты не зависят от способов создания их зависимостей, что упрощает изменения и тестирование. ➕Универсальность: Легко добавить новый сервис или изменить существующий без изменения потребляющих его компонентов. 🤔 Недостатки: ➕ Скрытая связанность: Зависимости между компонентами и их сервисами не всегда ясны, что может привести к более сложному коду и затруднить его понимание и поддержку. ➕ Сложность управления: По мере роста приложения управление всеми сервисами через локатор может стать сложным и неудобным. 🤔 Краткий ответ: Сервис локатор может быть полезен в ситуациях, когда нужна высокая степень гибкости и динамичности в управлении зависимостями, но его использование должно быть оправдано требованиями проекта, так как оно вносит дополнительную сложность в архитектуру приложения. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какое ключевое слово используется для объявления неявно типизированной локальной переменной?
Anonymous voting

📌 Какая разница между структурой и классом? 💬 Спрашивают в 33% собеседований Структуры (struct) и классы (class) являются двумя основными конструкциями, используемыми для определения типов данных. Хотя на первый взгляд они могут казаться похожими, между ними есть несколько ключевых различий: 1️⃣ Семантика хранения ➕ Классы: Классы в C# являются ссылочными типами. Это означает, что при присваивании объекта класса переменной или передаче его методу создается ссылка на объект, а не копия самого объекта. Все переменные класса указывают на один и тот же экземпляр в памяти. ➕ Структуры: Структуры — это значимые типы. Когда структура присваивается другой переменной или передается методу, создается копия всей структуры. Изменения одной копии не влияют на другую. 2️⃣ Наследование ➕ Классы: Классы поддерживают как интерфейсное, так и классовое наследование, то есть класс может наследовать поведение другого класса. ➕ Структуры: Структуры могут реализовывать интерфейсы, но не могут наследовать от других структур или классов. Также структуры не могут быть базовыми для других структур или классов. 3️⃣ Конструкторы ➕ Классы: Классы могут иметь конструкторы с параметрами и без параметров. ➕ Структуры: Структуры не могут иметь явно определенного конструктора без параметров, так как автоматически предоставляется конструктор по умолчанию, который инициализирует все поля значениями по умолчанию. Структуры могут иметь конструкторы с параметрами. 4️⃣ По умолчанию null ➕Классы: Переменные класса могут быть null, если им не присвоен экземпляр объекта. ➕ Структуры: Структуры не могут иметь значение null, поскольку они всегда содержат значение. 5️⃣ Память и производительность ➕ Классы: Так как объекты класса хранятся в куче, работа с классами может привести к дополнительным затратам на управление памятью и сборку мусора. ➕ Структуры: Поскольку структуры хранятся в стеке и не требуют сборки мусора, работа с ними может быть более быстрой, особенно когда они маленькие и используются в кратковременных или локальных контекстах. 🤔 Пример:
public struct Point
{
    public int X;
    public int Y;

    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }
}

public class Circle
{
    public Point Center;
    public double Radius;

    public Circle(int x, int y, double radius)
    {
        Center = new Point(x, y);
        Radius = radius;
    }
}
➕ Используйте структуры, когда вам нужно создать небольшой тип данных, который будет использоваться в большом количестве и не требует наследования. ➕ Используйте классы, когда вам нужно создать более сложные объекты, которые потенциально могут быть наследованы другими классами или когда необходимо управление жизненным циклом объекта через сборку мусора. 🤔 Краткий ответ: Выбор между структурой и классом зависит от требований к производительности, использования памяти и функциональности программы. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что произойдет, если у класса есть два интерфейса с одинаковыми методами и они реализованы явно?
Anonymous voting

📌 Когда инициируется сборка мусора? 💬 Спрашивают в 56% собеседований Сборка мусора (Garbage Collection, GC) автоматически управляет выделением и освобождением памяти в управляемом куче. Сборка мусора инициируется автоматически в следующих ситуациях: 1️⃣ Недостаток памяти: Если приложению требуется больше памяти для выделения объектов в управляемой куче и доступной памяти недостаточно, CLR (Common Language Runtime) автоматически инициирует сборку мусора для освобождения памяти, занятой неиспользуемыми объектами. 2️⃣ Достигнут порог выделения памяти: .NET Framework использует алгоритм, который основывается на объеме выделенной памяти. Для каждого поколения объектов (0, 1, и 2) определен пороговый объем выделенной памяти. Когда приложение выделяет память и этот порог достигается, происходит сборка мусора соответствующего поколения. 3️⃣ Вызов GC.Collect(): Разработчики могут явно запросить сборку мусора, вызвав метод GC.Collect(). Однако использовать этот метод нужно осторожно, так как его неправильное использование может привести к снижению производительности приложения. В большинстве случаев следует избегать явного вызова сборки мусора и полагаться на автоматическое управление памятью CLR. 4️⃣ Завершение работы приложения: При завершении работы приложения .NET Framework автоматически выполняет сборку мусора для очистки всех управляемых объектов, даже если они еще доступны. 5️⃣ Низкий уровень памяти в системе: Если операционная система сообщает о низком уровне доступной памяти, CLR может инициировать сборку мусора в попытке освободить память для системы. 🤔 Краткий ответ: Сборка мусора проектировалась таким образом, чтобы минимизировать необходимость вмешательства программиста в процесс управления памятью. Она позволяет автоматически решать большинство задач по освобождению памяти, что значительно упрощает разработку и повышает надежность программ на .NET. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что произойдет, если вызвать метод Dispose() у объекта, который реализует интерфейс IDisposable, дважды?
Anonymous voting

Партнёрская программа рекрутинга в Яндекс Еду Станьте партнёром Яндекс Еды по привлечению курьеров и получите кучу преимущест
Партнёрская программа рекрутинга в Яндекс Еду Станьте партнёром Яндекс Еды по привлечению курьеров и получите кучу преимуществ: 💰Платим до 25 000 ₽ за успешного кандидата 📞Поддержка на всех этапах 📅Свободное расписание 📊Удобные инструменты для работы Приводите новых курьеров и получайте в среднем 187 000 ₽ в месяц! Зарегистрироваться #реклама eda.yandex.ru О рекламодателе

📌 Что такое индексы, какие типы бывают, использовал ли их на практике? 💬 Спрашивают в 33% собеседований 🤔 Индексы — это структуры данных, которые улучшают скорость операций выборки данных, но могут снижать производительность операций вставки, удаления и обновления из-за необходимости поддержания индекса в актуальном состоянии. Могут быть построены на одном или нескольких столбцах таблицы и позволяют быстро находить строки без необходимости сканирования всей таблицы. 🤔 Типы: 1️⃣ Одиночные индексы (Single-column indexes): Индексируют значения одного столбца таблицы. Это основной тип индекса, используемый для ускорения запросов, фильтрующих или сортирующих данные по одному столбцу. 2️⃣ Составные индексы (Composite indexes): Индексируют значения, основанные на нескольких столбцах. Они полезны, когда операции выборки, сортировки или объединения таблиц часто используют одни и те же комбинации столбцов. 3️⃣ Уникальные индексы (Unique indexes): Гарантируют, что индексируемые значения уникальны. Они часто используются для обеспечения уникальности столбцов или набора столбцов в таблице. 4️⃣ Полнотекстовые индексы (Full-text indexes): Позволяют проводить полнотекстовый поиск по текстовым данным в базе данных. Они оптимизированы для поиска слов в больших текстовых полях и часто используются в системах, где требуется поиск по содержимому статей, блогов и других текстовых документов. 5️⃣ Пространственные индексы (Spatial indexes): Используются для индексации пространственных данных, таких как географические объекты. Они оптимизируют запросы, включающие пространственные операции, такие как нахождение объектов внутри заданной области. На практике индексы — это мощный инструмент для оптимизации производительности баз данных. Однако они должны использоваться осмысленно. 🤔 Осмысленное использование: ➕ Анализ запросов: Использование индексов должно начинаться с анализа наиболее часто выполняемых запросов и понимания структуры данных. Профилирование и анализ планов выполнения запросов помогут определить, где индексы могут быть полезны. ➕ Сбалансированное использование: Несмотря на преимущества ускорения чтения, индексы добавляют накладные расходы на операции записи. Каждая операция вставки, удаления или изменения данных требует обновления индексов, что может замедлить эти операции. ➕ Обслуживание индексов: С течением времени индексы могут фрагментироваться, особенно в активно изменяемых базах данных. Регулярное обслуживание, такое как реорганизация и перестроение индексов, помогает поддерживать их производительность на оптимальном уровне. 🤔 Краткий ответ: Индексы особенно полезны в больших базах данных, где правильно построенные индексы могут сократить время ответа запросов с нескольких минут до секунд. Важно помнить о затратах на поддержание индексов и влиянии на производительность операций записи. Поэтому перед созданием индекса всегда следует тщательно анализировать и тестировать его влияние на систему. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Jobski - твой помощник при поиске работы в IT Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек техно
Jobski - твой помощник при поиске работы в IT Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек технологий. Узнать больше #реклама jobski.ru О рекламодателе

🤔 Что произойдет, если вызвать await внутри метода, который не помечен как async?
Anonymous voting

📌 Что такое EF? 💬 Спрашивают в 33% собеседований 🤔 Entity Framework (EF) — это объектно-реляционный маппер (ORM), разработанный компанией Microsoft, позволяющий работать с данными на высоком уровне абстракции, оперируя объектами и классами вместо прямых запросов к базе данных. Предоставляет мощные возможности для моделирования, запросов, сохранения и обработки данных в различных базах данных, таких как SQL Server, MySQL, SQLite и других. 🤔 Основные компоненты и возможности: 1️⃣DbContext: Это основной класс в EF, который управляет взаимодействием с базой данных. Он предоставляет доступ к функциональности, такой как выполнение запросов, сохранение данных и настройка моделей. 2️⃣ DbSet: Это коллекции объектов определенного класса, которые представляют собой таблицы в базе данных. Классы, которые представляют данные в таблицах, обычно называются сущностями. 3️⃣ LINQ to Entities: EF позволяет использовать LINQ (Language Integrated Query) для написания запросов к базе данных, которые затем транслируются в SQL-запросы. Это позволяет разработчикам писать запросы к данным в объектно-ориентированном стиле на C#. 4️⃣ Миграции: EF поддерживает механизм миграций для управления изменениями в структуре базы данных по мере развития приложения. Миграции позволяют автоматически обновлять схему базы данных в соответствии с изменениями в моделях данных. 5️⃣ Конвенции и настройки: Entity Framework использует набор конвенций для автоматического маппинга классов на таблицы и их свойств на столбцы. Разработчики могут переопределить и дополнить эти конвенции с помощью аннотаций данных или Fluent API. 🤔 Версии: ➕ Entity Framework 6 (EF6): Последняя версия для .NET Framework. EF6 продолжает поддерживаться и развиваться, включая новые функции и исправления ошибок. ➕ Entity Framework Core (EF Core): Современная, легковесная, расширяемая и кросс-платформенная версия Entity Framework, разработанная для .NET Core. EF Core предназначен для использования в модернизированных и масштабируемых приложениях и поддерживает широкий спектр баз данных.
using (var context = new BloggingContext())
{
    var blog = new Blog { Url = "http://blogs.msdn.com/adonet" };
    context.Blogs.Add(blog);
    context.SaveChanges();

    var blogs = context.Blogs
                       .Where(b => b.Url.Contains("msdn"))
                       .ToList();
    foreach (var b in blogs)
    {
        Console.WriteLine(b.Url);
    }
}
В этом примере создается новый объект Blog, добавляется в контекст и сохраняется в базе данных. Затем выполняется запрос для извлечения блогов с определенным URL. 🤔 Краткий ответ: Entity Framework значительно упрощает работу с реляционными базами данных, позволяя разработчикам сосредоточиться на бизнес-логике, вместо деталей реализации доступа к данным. Он предлагает мощные инструменты для абстракции доступа к данным, что делает код чище, проще для понимания и поддержки. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых