uz
Feedback
Библиотека собеса по C# | вопросы с собеседований

Библиотека собеса по C# | вопросы с собеседований

Kanalga Telegram’da o‘tish

Вопросы с собеседований по C# и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/4c2f1c3b Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197

Ko'proq ko'rsatish
5 657
Obunachilar
-224 soatlar
Ma'lumot yo'q7 kunlar
+6630 kunlar
Postlar arxiv
Кратко опишите разницу между веб-сайтом и веб-приложением. Веб-приложение — это часть программного обеспечения, к которому может получить доступ браузер. Веб-приложению требуется аутентификация. Оно использует комбинацию серверных и клиентских скриптов для представления информации, а также ему требуется сервер для управления запросами от пользователей. Веб-сайт — это набор связанных веб-страниц, содержащий изображения, текст, аудио, видео и т. д. Он может состоять из любого количества страниц. Веб-сайт предоставляет визуальный и текстовый контент, который пользователи могут просматривать и читать. Для просмотра веб-сайта требуется браузер. Библиотека собеса по С#

Каковы наиболее распространенные вопросы на собеседованиях по ASP.NET? — Что такое ASP.NET? — Каковы преимущества ASP.NET? — Каковы различные типы приложений ASP.NET? — Что такое шаблон MVC? — Как создать веб-приложение в ASP.NET? — Как обрабатывать ввод данных пользователем в ASP.NET? — Как защитить веб-приложение в ASP.NET? — Как подготовиться к собеседованию по ASP.NET? Библиотека собеса по С#

Как корректно освобождать ресурсы в DI, если требуется асинхронный dispose? Используйте IAsyncDisposable и асинхронные скоупы (await using var scope = provider.CreateAsyncScope()), не блокируйте DisposeAsync() синхронно. Порядок освобождения — обратный порядку регистрации; следите, чтобы зависимые сервисы не переживали свои провайдеры, и не смешивайте Dispose/DisposeAsync без нужды. Библиотека собеса по С#

Как можно запустить бесконечный цикл с помощью оператора for()? Используя for(;;). Библиотека собеса по С#

В .NET Core сервисе под высокой нагрузкой время отклика начало расти. Профилирование показывает частые паузы GC и большое количество объектов в Large Object Heap (LOH). Как вы будете разбираться с этой проблемой и что можно сделать для оптимизации? Нужно проанализировать профилировщиком (dotTrace, PerfView, ETW), какие именно объекты попадают в LOH. Оптимизировать работу с большими массивами и строками: использовать пулы (ArrayPool<T>), Span<T>, Memory<T>, разбивать большие структуры на меньшие. Проверить аллокации, убрать избыточные, а GC — настроить (Server/Background GC). Библиотека собеса по С#

До 31 мая можно забрать любой курс Proglib Academy со скидкой 40% Если давно хотели прокачаться в Python, ML, алгоритмах или
До 31 мая можно забрать любой курс Proglib Academy со скидкой 40% Если давно хотели прокачаться в Python, ML, алгоритмах или AI-агентах, сейчас самое время выбрать программу и начать обучение по сниженной цене. 🎁 Разработка AI-агентов от 49.000 ₽ (вместо 69.000 ₽) Практический курс по разработке AI-агентов для автоматизации задач, работы и собственных проектов 🎁 Курс AgentOps129.000 ₽ (вместо 149.000 ₽) Для разработчиков и LLM-инженеров, которые хотят внедрять AI-логику в бэкенд и сохранять стабильность сервиса. 🎁 Математика для разработки AI-моделей 23.990 ₽ (вместо 31.990 ₽) Практическая база по математике для анализа данных, ML и дальнейшего развития в AI. 🎁 Математика для Data Scienceот 29.990 ₽ (вместо 39.990 ₽) Курс для тех, кто хочет решать задачи, которые дают на собеседованиях на позицию дата-сайентиста в бигтехе. 🎁 ML для старта в Data Science28.990 ₽ (вместо 38.990 ₽) Разберётесь в машинном обучении: от базовых понятий и линейных моделей до ансамблей, бустинга и рекомендательных систем. 🎁 Основы IT для непрограммистов16.990 ₽ (вместо 28.990 ₽) Курс для IT-рекрутеров, маркетологов, проджектов, продактов и всех, кто работает с IT, но не пишет код. 🎁 Архитектуры и шаблоны проектирования27.990 ₽ (вместо 37.900 ₽) Освоите основные паттерны проектирования и прокачаете навыки архитектора программного обеспечения. 🎁 Специалист по ИИ89.000 ₽ (вместо 113.900 ₽) Курс для тех, кто хочет получить профессию в сфере ИИ, собрать портфолио из 5 проектов и научиться разрабатывать сложных AI-агентов. 🎁 Алгоритмы и структуры данных 33.990 ₽ (вместо 57.990 ₽) Подготовитесь к алгоритмическим собеседованиям, разберёте структуры данных и научитесь писать более эффективный код. 🎁 Программирование на языке Python27.990 ₽ (вместо 47.390 ₽) Освоите Python на практике: без сухой теории, с пошаговой прокачкой навыков и итоговым проектом в портфолио. 🙌 Выбирайте курс по ссылке, оставляйте заявку, и менеджер поможет подобрать программу под ваши цели — https://clc.to/SALE40

Что означают следующие аббревиатуры в .NET: IL, CIL, MSIL, CLI и JIT? IL (Intermediate Language) – это независимый от процессора частично скомпилированный код. Код IL будет скомпилирован в родной машинный код с использованием текущих свойств среды компилятором Just-In-Time (JIT). JIT-компилятор переводит IL-код в код сборки и использует архитектуру процессора целевой машины для выполнения приложения .NET. В .NET язык IL называется Common Intermediate Language (CIL), а на первых этапах .NET он назывался Microsoft Intermediate Language (MSIL). CLI (Common Language Infrastructure) – это открытая спецификация, разработанная компанией Microsoft. Это библиотека скомпилированного кода, используемая для развертывания, создания версий и обеспечения безопасности. В .NET существует два типа CLI: сборки процессов (EXE) и сборки библиотек (DLL). Сборки CLI содержат код на языке CIL, и, как уже упоминалось, при компиляции языков программирования CLI исходный код транслируется в код CIL, а не в объектный код, специфичный для платформы или процессора. Подведем итоги: 1. При компиляции исходный код сначала транслируется в IL (в .NET это CIL, а ранее назывался MSIL). 2. Затем CIL собирается в байткод и создается сборка CLI. 3. Перед выполнением кода CLI-код проходит через JIT-компилятор среды выполнения для генерации родного машинного кода. 4. Процессор компьютера выполняет родной машинный код. Библиотека собеса по С#

Какие гарантии и ограничения даёт lock в C# при работе с многопоточностью? Короткий ответ: обеспечивает взаимное исключение по одному и тому же объекту и полные барьеры памяти (acquire на входе, release на выходе; «happens-before» между секциями по тому же объекту), но не гарантирует справедливость/очередность, не предотвращает дедлоки и не синхронизирует потоки, использующие разные объекты. Библиотека собеса по С#

Как диагностировать в проде thread pool starvation и «sync-over-async» без перезапуска? Снимайте EventPipe-метрики (dotnet-counters): ThreadPool Queue Length/Completed/Active, aspnetcore-критерии; берите короткий dotnet-trace CPU-сэмплинг, при необходимости дамп. Признаки — длинная очередь, мало воркеров, блокирующие стеки. Лечение: end-to-end async, убрать .Result/.Wait(), вынести долгие блокировки, при пиках поднять MinThread, но не маскировать корень. Библиотека собеса по С#

В чем суть полиморфизма? Полиморфизм — способность функции обрабатывать данные разных типов. Ad-hoc полифорфизм (перегрузка функций, приведение типа) — можно создать несколько методов с одним именем и разными аргументами, примитивные типы могут неявно приводиться. Параметрический полиморфизм (обобщённое программирование) — можно создать полиморфные (обобщённые) типы. Полиморфизм включения (наследование) — интерфейсы, наследование классов, виртуальные функции. Библиотека собеса по С#

Как используется property? Свойство — это обёртка вокруг поля. Свойство используется как для присвоения, так и для чтения значения из поля с помощью методов set и get. Свойство можно создать для различных полей, таких как закрытые, открытые, защищённые и внутренние. Библиотека собеса по С#

Какова разница между IEnumerable и IQueryable при работе с удаленной базой данных? IEnumerable представляет собой коллекцию данных, находящуюся в памяти, и позволяет перемещаться по этим данным только в одном направлении — вперед. В отличие от него, IQueryable находится в пространстве имен System.Linq и предоставляет возможность удаленного доступа к базе данных. Он позволяет перемещаться по данным как в прямом, так и в обратном порядке. При выполнении запроса происходит его оптимизация, что делает работу с данными более эффективной. IEnumerable phoneIEnum = db.Phones; var phones1 = phoneIEnum.Where(p => p.Id > id).ToList(); //SELECT * FROM PHONES, фильтрация на стороне клиента IQueryable phoneIQuer = db.Phones; int id = 3; var phones2 = phoneIQuer.Where(p => p.Id > id).ToList(); //SELECT * FROM PHONES WHERE ID > 3 Библиотека собеса по С#

Где вы читаете полезный IT-контент? Интересуют источники, где не только новости, но и практика, разборы и реальные кейсы. Поделитесь в комментариях, можно 1-2 канала/автора, где читаете (TG / Habr / блог / X / GitHub) и какая тематика?

В чем разница между кастомным контролем и пользовательским контролем? Кастомные элементы управления — это элементы управления скомпилированного кода (DLL), которые проще использовать и которые можно добавлять в набор инструментов. Разработчики могут добавлять элементы управления в свои веб-формы, перетаскивая их. Атрибуты можно добавлять в процессе проектирования. Кастомные элементы управления можно легко добавлять в несколько приложений (если это общие Dll). Поэтому, если они являются частными, мы можем скопировать dll в каталог bin веб-приложения, добавить ссылку и использовать их. Пользовательские элементы управления похожи на ASP, включая файлы, в том, что их просто создавать. Пользовательские элементы управления нельзя перетаскивать в набор инструментов. У них есть собственный дизайн и код. Ascx — это расширение файла для пользовательских элементов управления. Библиотека собеса по С#

Какими способами можно перегрузить метод? Методы могут быть перегружены с помощью различных типов данных для параметра, нескольких порядков параметров и различного количества параметров. Библиотека собеса по С#

Как работает async/await и роль SynchronizationContext? async/await преобразует метод в машину состояний. При await выполнение приостанавливается, а продолжение может быть запланировано на исходном SynchronizationContext (например, UI-поток). В ASP.NET Core его нет, и продолжение выполняется в ThreadPool. ConfigureAwait(false) отключает возврат в контекст. Библиотека собеса по С#

Что такое Span<T> и Memory<T> в C# и в чём между ними разница? Span<T> — это ref-структура, представляющая непрерывный участок памяти (массив, стек, неуправляемая память) без аллокаций в куче. Позволяет работать с подмассивами, строками и буферами без копирования. Так как это ref struct, Span<T> живёт только на стеке: его нельзя сохранять в полях класса, использовать в async-методах, итераторах или захватывать в лямбдах. Memory<T> — обычная структура с теми же возможностями по представлению участка памяти, но без ограничений ref-структуры. Её можно хранить в полях, передавать через await, использовать в асинхронном коде. Получить Span<T> из Memory<T> можно через свойство .Span. Правило выбора: Span<T> — для синхронного, горячего кода с максимальной производительностью; Memory<T> — когда нужно пересечь границы async/await или сохранить ссылку на буфер. Библиотека собеса по С#

Что делает ключевое слово var в C#? Компилятор выводит статический тип переменной по правой части выражения. Это не dynamic: тип фиксируется на этапе компиляции. Нельзя использовать без инициализации и менять тип этой переменной позже. Библиотека собеса по С#

Как можно использовать шаблон проектирования Singleton в C#? Шаблон проектирования Singleton используется в C# в ситуации, когда класс имеет один экземпляр и доступ предоставляется всем. 🐸Библиотека собеса по С#

Напишите программу для сложения всех чётных чисел в массиве Ответ: static long TotalAllNum(int[] intArray) { return intArray.Where(i => i % 2 == 0).Sum(i => (long)i); } Библиотека собеса по С#