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

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

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

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

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Объясните понятие наследования и то, как оно работает в .NET.

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

Для демонстрации своего понимания вопроса на собеседовании кандидаты могут объяснить, что в .NET поддерживается только одиночное наследование, что означает, что класс может наследовать только от одного другого класса. Они также могут упомянуть транзитивное наследование — например, класс Форд наследуется от класса Автомобиль, который в свою очередь наследуется от Транспортного средства.
🎁🎄Как ваше настроение? Рассказывайте, что вам подарили на Новый год?
Объясните Raycasting в Unity и ее приложения.

Концепция Raycasting в Unity заключается в проецировании луча из заданной точки в определённом направлении для выявления столкновений с объектами на игровой сцене. Основные области применения Raycasting включают:
⚡️ Механики стрельбы;
⚡️ Проверку прямой видимости;
⚡️ Взаимодействие с объектами;
⚡️ Обнаружение поверхностей для передвижения персонажа.
Является ли тип List потокобезопасной коллекцией?

Тип List может быть безопасным для потоков в случае операций чтения. Однако пользовательский код должен самостоятельно обеспечивать синхронизацию при параллельном добавлении или удалении элементов из коллекции в нескольких потоках.
Объясните, что такое фиксированный временной шаг в Unity3D? Почему настройка фиксированного времени влияет на скорость игры?

Функция Fixed Timestep помогает установить обновления системы через фиксированный интервал времени. Механизм, подобный очереди, будет управлять всеми событиями в реальном времени, которые накапливаются между временными эпохами.

Если частота кадров упадет ниже некоторого порогового значения, установленного для фиксированного временного шага, это может повлиять на скорость игры.
В чем разница между методами Dispose() и Finalize()?

Основное различие между обоими методами заключается в том, что метод Dispose() используется для освобождения неуправляемых ресурсов объекта, а метод Finalize также используется для той же цели, но он не гарантирует сбор мусора объекта. Еще одним важным отличием является то, что метод Dispose() вызывается пользователем явно, а метод Finalize() вызывается сборщиком мусора непосредственно перед уничтожением объекта.
Различия между интерфейсом и абстрактным классом в .NET

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

Абстрактный класс, в свою очередь, предлагает частичную реализацию функциональности и может содержать как абстрактные, так и виртуальные члены, которые должны быть реализованы наследующими его классами. Кроме того, абстрактный класс может содержать поля.
Важно отметить, что ни интерфейс, ни абстрактный класс не могут быть инстанцированы.
👔💼 Как ответить на собеседовании, почему вы уволились с прошлого места работы: 9 вариантов ответа

А также примеры того, как говорить точно не надо 🌚

👉Читать
Простой способ сравнить массивы в C# — используйте метод Enumerable.SequenceEqual.
Напишите различные события страницы в ASP.NET.

📌 Преинициализация
📌 Инициализация
📌 InitComplete
📌 LoadViewState
📌 LoadPostData
📌 Предварительная загрузка
📌 Загрузка
📌 Загрузка завершена
📌 Предварительная визуализация
📌 PreRenderComplete
📌 SaveStageComplete
📌 Выгрузка
Опишите элемент управления TreeView?

Элемент управления TreeView состоит из узлов. Каждая запись в дереве называется узлом и представлена ​​объектом TreeNode. Узел, содержащий другие узлы, называется родительским узлом. Узел, содержащийся в другом узле, называется дочерним узлом. Узел, не имеющий дочерних узлов, называется листовым узлом. Узел может быть как родительским, так и дочерним, но корневые, родительские и листовые узлы являются взаимоисключающими. Несколько визуальных и поведенческих свойств узлов определяются тем, является ли узел корневым, родительским или листовым узлом.
Зачем в C# используется блок finally?

Блок finally всегда выполняется независимо от того, есть исключение или нет. Когда код выполняется в блоке try и возникает исключение, управление возвращается в блок catch, и в конце выполняется блок finally. Таким образом, блок finally может содержать закрытие соединений с базой данных и освобождение обработчиков файлов.
Самые полезные каналы для программистов в одной подборке!

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

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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++

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

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

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

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

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

* Организация Meta запрещена на территории РФ
Можно ли разрешить наследование класса, но запретить переопределение его метода?

Да, это возможно для второго класса в иерархии наследования. Для этого нужно использовать модификатор sealed в сочетании с ключевым словом override при переопределении виртуального метода. Таким образом, дальнейшее переопределение этого метода в последующих классах будет запрещено.
Какова разница между 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
Как прочитать все строки текстового файла в массив строк в C#?
Anonymous Quiz
72%
File.ReadAllLines("path");
5%
File.LoadLines("path");
19%
File.ReadAllText("path");
3%
File.LoadText("path");
📊 Какова разница между абстрактными и виртуальными классами? Между виртуальными и абстрактными методами?

Абстрактные классы обозначаются ключевым словом abstract. В таких классах могут содержаться абстрактные члены (методы, свойства, индексаторы, события), которые не имеют конкретной реализации и служат в качестве интерфейса. Все абстрактные члены также должны быть помечены ключевым словом abstract.

При наследовании от абстрактного класса производный класс получает все свойства родительского класса, и если в родительском классе есть абстрактные члены, их необходимо переопределить в дочернем классе.

Виртуальный класс, в свою очередь, представляет собой обычный класс, содержащий виртуальные члены (методы, свойства и т.д.). Виртуальные члены обозначаются модификатором virtual и имеют свою реализацию, которую можно переопределить в производном классе.
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾