Библиотека собеса по C# | вопросы с собеседований
5.68K subscribers
214 photos
2 videos
1 file
201 links
Вопросы с собеседований по C# и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/4c2f1c3b

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
⌨️ Полный курс по C#

Большой плейлист для изучения C#, состоящий из средних и коротких по длительности роликов. Как и полагается всем подобным курсам, автор подробно разбирает все аспекты программирования на C# для новичков.

Вы узнаете, как установить и настроить Visual Studio, разберётесь с основным синтаксисом языка и даже сможете написать свою собственную программу спустя какое-то время.

1. Введение — [9:33]
2. Установка Visual Studio — [8:42]
3. Структура проекта — [17:42]
4. Типы данных — [13:58]
5. Переменные в C# — [20:54]

Перейти к плейлисту
Синхронный запуск задачи

По умолчанию задачи запускаются асинхронно. Однако с помощью метода RunSynchronously() можно запускать синхронно.
Потокобезопасен ли List?

Нет, List не потокобезопасен.

Самый простой способ сделать его таким — это блокировать доступ к базовым коллекциям (читать и писать) с помощью lock.
Что такое Boxing и Unboxing?

Упаковка представляет собой процесс неявный преобразования типа значения (хранящегося в стеке) в тип object. Когда тип значения упаковывается средой CLR, она создает оболочку значения внутри System.Object и сохраняет ее в управляемой куче.

Обратная операция распаковки осуществляется явным преобразованием object в тип значения. Если упакованный объект не соответствует требуемому типу, то выбрасывается исключение InvalidCastException.
Когда следует использовать .NET Web Forms вместо ASP.NET MVC?

.NET Framework традиционно был основан на веб-формах, представляя собой попытку создания веб-служб с использованием инструментов Microsoft Visual Studio Tools, чтобы избежать необходимости изучения новых языков сценариев. Веб-формы позволяли разработчикам создавать быстрые и простые приложения, а некоторые устаревшие системы продолжали использовать этот подход.

Однако с появлением ASP.NET MVC стандартом становится использование этой архитектуры среди современных разработчиков. На собеседовании по .NET кандидаты должны уметь выделить преимущества модели-представления-контроллера (MVC). Основным преимуществом MVC является возможность разделения приложения на отдельные модели, представления и контроллеры, что значительно облегчает их тестирование во время разработки.
В чем разница между .NET и Laravel?

Большинство специалистов в области веб-разработки имеют представление о различных фреймворках, таких как Laravel, и могут провести сравнение между этими платформами и .NET. Обсуждение этих различий может помочь понять интересы кандидатов и их взгляд на роль разработчика .NET. Например, они могут обратить внимание на:

✍🏻 Языки (например, поддержка C # в .NET по сравнению с поддержкой PHP в Laravel)
✍🏻 Безопасность
✍🏻 Интеграция .NET с Visual Studio
✍🏻 Сторонние библиотеки
✍🏻 Поддержка сообщества разработчиков ПО с открытым исходным кодом
Что такое рефлексия в С#?

Это процесс описания метаданных типов, методов и полей в коде. Пространство имен System.Reflection позволяет получать данные о загруженных сборках, элементах внутри них, таких как классы, методы и типы значений.
Что такое данные JSON и как разработчики .NET могут работать с JSON?

JSON (JavaScript Object Notation) позволяет разработчикам упорядочивать и хранить данные для легкого доступа и чтения. Для разработчиков JSON является важным инструментом, так как позволяет управлять JSON-потоками с других сайтов и загружать их быстрее и проще, чем через каналы SML / RSS. Json.NET предоставляет возможность разработчикам .NET определять классы, которые могут анализировать объекты и массивы из текста JSON. Также Json.NET можно использовать для сериализации типов значений в текстовый формат JSON. Json.NET совместим с .NET2, .NET3 и .NET4.
Что выведет в консоль следующая программа и почему?

Ответ:
Программа не скомпилируется, поскольку переменная name, к которой мы хотим обратиться в методе Main, не имеет модификаторов. Следовательно, по умолчанию она имеет модификатор доступа private. Поэтому вне класса Person к этой переменной мы обратиться не можем.
Как вы подходите к оптимизации производительности в Unity для мобильных устройств, учитывая ограничения аппаратного обеспечения и разнообразие экосистемы устройств?

Для оптимизации производительности в Unity для мобильных устройств, важно сосредоточиться на следующих аспектах:

Оптимизация ресурсов: Сжатие текстур и мешей, использование LOD (Level of Detail) для уменьшения детализации объектов на расстоянии и оптимизация ассетов для уменьшения загрузки на GPU.

Эффективное использование освещения: Использование статического и запекаемого освещения вместо динамического, что снижает нагрузку на процессор.

Оптимизация скриптов: Минимизация использования операций Update() и FixedUpdate(), оптимизация алгоритмов и структур данных.

Пакетная обработка и куллинг: Использование пакетной обработки для уменьшения количества draw calls и эффективный куллинг для исключения не видимых объектов из рендеринга.

Тестирование и профилирование: Регулярное использование профилировщика Unity для выявления и устранения узких мест производительности.

Адаптация к различным устройствам: Создание различных профилей графических настроек для адаптации к разным классам устройств, учитывая их аппаратные возможности.
Объясните разницу между стеком и очередью

Этот вопрос на собеседовании по .NET направлен на оценку базовых знаний кандидатов о работе с коллекциями. В эту категорию входят стеки, очереди, хеш-таблицы, пакеты, словари и списки. Стек используется для отслеживания и обработки значений по принципу LIFO (Last-In, First-Out), где последний добавленный элемент будет первым удаленным.

С другой стороны, очередь оперирует элементами по принципу FIFO (First-In, First-Out), где первый добавленный элемент будет первым удаленным. В очереди элементы добавляются с задней стороны и удаляются с передней стороны.
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
Доступные только для чтения переменные и константы имеют много общего, но чем они отличаются?

Есть два варианта ответа на подобные вопросы на собеседованиях по .NET:
Переменные только для чтения могут содержать ссылочные типы данных, в то время как константы могут содержать только значения типа.
Переменные только для чтения оцениваются во время выполнения разработчиками, в то время как константы оцениваются во время компиляции.
Можете ли вы привести пример сценария, в котором использование LINQ повысило эффективность проекта на C#, над которым вы работали?

Ожидаемый ответ: в недавнем проекте я использовал LINQ для упрощения фильтрации и сортировки данных в веб-приложении. Это уменьшило объем необходимого кода и улучшило общую читаемость.

Объяснение: предоставление реального примера демонстрирует практические преимущества использования LINQ и демонстрирует способность кандидата эффективно его применять.
Как реализовать шаблон проектирования Singleton в C#?

В шаблоне Singleton класс может иметь только один экземпляр и предоставляет глобальную точку доступа к нему.

Public sealed class Singleton
{
Private static readonly Singleton _instance = new Singleton();
}
Какие существуют типы сборки мусора в C#? Как их настроить?

C# поддерживает три типа сборки мусора: сбор мусора рабочей станции, сервера и параллельная сборка мусора. Вы можете настроить поведение сборки мусора, используя параметры конфигурации в файле конфигурации приложения.
Что вы понимаете о внедрении зависимостей?

Вы можете отделить тесно связанные классы с помощью внедрения зависимостей. Таким образом, это уменьшает прямую зависимость классов друг от друга. Вы можете добиться внедрения зависимостей с помощью следующего: зависимость конструктора, зависимость свойств, зависимость метода.
Объясните понятие наследования и то, как оно работает в .NET.

В общем понимании ООП наследование означает, что класс может быть создан на основе другого класса, при этом новый класс получает атрибуты родительского класса. Например, разработчики могут создать класс с именем Транспортное средство, а затем дочерние классы с именами Грузовик, Автомобиль и Мотоцикл — все они наследуют атрибуты Транспортного средства.

Для демонстрации своего понимания вопроса на собеседовании кандидаты могут объяснить, что в .NET поддерживается только одиночное наследование, что означает, что класс может наследовать только от одного другого класса. Они также могут упомянуть транзитивное наследование — например, класс Форд наследуется от класса Автомобиль, который в свою очередь наследуется от Транспортного средства.
Расскажите краткое описание вариантов передачи параметров с помощью методов в C#.

Параметр значения: опция по умолчанию. Параметры, передаваемые в метод, приведут к сохранению новой копии в памяти, и любые изменения в этой копии не будут отражены в исходном параметре значения.
Ссылочный параметр: хранит адрес памяти параметра в аргументе метода, поэтому любые изменения аргумента отражаются на исходном параметре в памяти.
Выходной параметр: используется, если вы хотите, чтобы метод возвращал несколько значений.
Можно ли хранить смешанные типы данных, такие как int, string, float, char, в одном массиве?

Да, это возможно, поскольку массив может иметь тип объекта, который может хранить не только любой тип данных, но и объект класса, как показано на картинке.
Что такое веб-служба .NET?

Ответ: веб-сервисы — это повторно используемые компоненты, которые позволяют разработчикам публиковать функцию приложения через Интернет, чтобы сделать его доступным и напрямую взаимодействовать с другими приложениями и объектами в нем. Веб-службы взаимодействуют с помощью стандартных веб-протоколов и форматов данных, включая HTTP, XML и SOAP, что позволяет им подключаться между различными платформами и языками программирования. ||ASP .NET|| предоставляет простой способ разработки веб-служб. .NET Framework предоставляет встроенные классы для создания и использования веб-служб.