Библиотека собеса по C# | вопросы с собеседований
رفتن به کانال در Telegram
Вопросы с собеседований по C# и ответы на них. По рекламе: @tproger_sales_bot Учиться у нас: https://clc.to/QRJIVw Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197
نمایش بیشتر5 628
مشترکین
-324 ساعت
-77 روز
-2630 روز
آرشیو پست ها
Repost from Библиотека шарписта | C#, F#, .NET, ASP.NET
🎮⛰ Дорожная карта Unity-разработчика 2025: с нуля до джуна
Если вы хотите создать свою игру с нуля или систематизировать знания, эта дорожная карта — идеальный старт.
Рассмотрели все важные этапы: от основ языка C# до работы с физикой, интерфейсом и сторонними SDK. Шаг за шагом объясняются ключевые темы, такие как ООП, паттерны проектирования, корутины и оптимизация.
В конце бонус — подборка полезных ресурсов.
➡️ Пройти путь по карте
🐸Библиотека шарписта
❓ Можно ли в рамках lock и использовать await
Нет, в рамках оператора lock нельзя использовать await.
Когда вы используете lock, поток блокируется до тех пор, пока не завершится выполнение кода внутри блока. Операции с await требуют освобождения потока, чтобы он мог продолжить выполнение других задач, что несовместимо с блокировкой потока через lock.
Если вы хотите использовать асинхронные операции с ожиданием, следует использовать другие механизмы синхронизации, такие как SemaphoreSlim, которые поддерживают асинхронное ожидание.
🐸Библиотека собеса по С#
❓ Где будет размещен значимый тип данных, если он объявлен внутри класса
Если у класса есть значимый тип данных (например, int, double, struct), то он будет храниться в области памяти, предназначенной для экземпляра этого класса, то есть в heap (если класс создается с помощью оператора new) или в stack (если класс создается локально). Однако важно отметить, что сам значимый тип данных будет храниться непосредственно внутри объекта, на который указывает ссылка.
Например:
Если класс является ссылочным типом (class), то сам объект класса будет размещен в куче (heap), но значимый тип данных будет храниться в этом объекте в том же месте.
Если класс является структурой (struct), то данные будут храниться в том месте, где создается экземпляр структуры (например, в стеке, если структура объявлена локально).
Таким образом, где именно будет храниться значимый тип данных, зависит от того, является ли класс ссылочным типом или значимым типом.
🐸Библиотека собеса по С#
Repost from Библиотека шарписта | C#, F#, .NET, ASP.NET
🤔📝 Псевдокод: когда преподы не шарят, а ты в тупике
Псевдокод может быть настоящим головняком, особенно если требования к нему кажутся непонятными или не совпадают с тем, что вы видите в реальной практике программирования.
Узнайте, как сделать псевдокод полезным инструментом, а не дополнительной нагрузкой.
➡️ Читать статью
🐸Библиотека шарписта
👀 Какую проблему решает ThreadPool
ThreadPool решает проблему управления потоками в многозадачных приложениях. Он помогает оптимизировать производительность за счет повторного использования уже созданных потоков, чтобы избежать дорогих операций по созданию и уничтожению потоков при каждой задаче.
Основная цель ThreadPool — эффективно управлять количеством потоков, чтобы не перегружать систему и при этом поддерживать высокую производительность. Когда задача добавляется в пул потоков, ThreadPool выбирает свободный поток или создает новый, если их недостаточно. Это позволяет избежать утечек памяти и перегрузки, которые могут возникнуть при прямом управлении потоками вручную.
Это особенно полезно для приложений с большим количеством короткоживущих задач, таких как веб-сервисы или серверные приложения, где создание нового потока для каждой задачи может сильно снизить производительность.
🐸Библиотека собеса по С#
❓ Что означает «D» в ACID?
Это свойство гарантирует, что как только транзакция завершена, её изменения будут сохранены, даже если система внезапно выйдет из строя.
Допустим, вы перевели деньги через интернет-банк, и транзакция завершилась успешно. Даже если сервер после этого упал, ваш перевод всё равно будет сохранён. Это означает, что данные, записанные в процессе транзакции, не потеряются и останутся целыми.
🐸Библиотека собеса по С#
👀 Как оптимизировать ситуацию, когда к таблице много join`ов?
Для оптимизации запросов с множественными JOIN-ами важно использовать индексы на полях JOIN-ов, избегать избыточных соединений, заменять несколько JOIN-ов на подзапросы и разбивать запросы на этапы с меньшим количеством JOIN-ов. Агрегация и фильтрация данных перед JOIN-ами также помогут ускорить запрос.
Правильный выбор типа JOIN-а, например, INNER JOIN вместо LEFT JOIN, тоже важен для производительности.
🐸Библиотека собеса по С#
❓ Что означает «I» в ACID?
Это свойство означает, что каждая транзакция выполняется независимо от других, даже если они происходят одновременно.
Например: два пользователя одновременно пытаются обновить информацию о товаре в магазине, то изменения одного пользователя не могут "перемешиваться" с действиями другого. Транзакции не видят промежуточные результаты других транзакций, пока они не будут завершены. Это гарантирует, что одна транзакция не повлияет на другую до её завершения.
🐸Библиотека собеса по С#
✍🏼 Расскажи про конкурентные коллекции в C#?
Конкурентные коллекции в C# предназначены для безопасного доступа к данным в многозадачных приложениях. Они позволяют нескольким потокам одновременно читать и изменять данные, исключая необходимость ручной синхронизации и минимизируя блокировки.
🐸Библиотека собеса по С#
Repost from Библиотека шарписта | C#, F#, .NET, ASP.NET
🎮🔌 4 cамых популярных фреймворка для разработки онлайн-игр на Unity
Сетевое взаимодействие — это сердце многопользовательской игры, и правильный выбор фреймворка это решающий фактор для проекта.
Посмотрите обзор самых популярных фреймворков для разработки онлайн-игр на Unity и выберите тот, который подходит для вашего проекта.
➡️ Читать обзор
🐸Библиотека шарписта
❓ Что означает «C» в ACID?
Это свойство гарантирует, что транзакция всегда переводит систему из одного валидного состояния в другое.
Например: перевод денег с одного счета на другой, система остаётся в корректном состоянии: сумма на одном счете уменьшилась, а на другом увеличилась. Если транзакция не завершится, изменения не будут внесены, и система останется в исходном валидном состоянии.
🐸Библиотека собеса по С#
❓ Что такое мультикаст-делегат
Мультикаст-делегат — это делегат, который может ссылаться на несколько методов одновременно. При вызове такого делегата все методы в его списке вызовов выполняются последовательно.
🐸Библиотека собеса по С#
Repost from Библиотека шарписта | C#, F#, .NET, ASP.NET
🕸 Как работает протокол HTTP/2: основные принципы и преимущества в сравнении с HTTP/1.1
HTTP/2 — это как переход с однополосной дороги HTTP/1.1 на скоростное шоссе: быстрее, эффективнее и без пробок.
Узнайте, как новые технологии ускоряют загрузку веб-страниц и улучшают работу приложений.
➡️ Читать статью
🐸Библиотека шарписта
❓ Что означает «A» в ACID?
Это свойство означает, что транзакция — неделимая единица работы: либо выполняется полностью, либо не выполняется вообще.
Если хоть одна операция внутри транзакции не удалась — все изменения откатываются, и система остаётся в исходном состоянии, будто ничего не происходило.
🐸Библиотека собеса по С#
✔️ Как в C# поля и свойства отличаются друг от друга?
В C# поля и свойства имеют различия друг от друга. Поле — это член класса или объекта, предназначенный для хранения данных, в то время как свойство — это член класса, который предоставляет методы для чтения, записи и вычисления значения соответствующего поля.
Библиотека собеса по С#
Repost from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🪄 Визуальные вычисления в Power BI: прокачиваем условное форматирование
Теперь настраивать условное форматирование в Power BI можно без сложных DAX-формул!
Разбираем, как новые визуальные вычисления помогают создавать динамичные, адаптивные и стильные отчеты, которые мгновенно реагируют на изменения данных.
⭐️ Пора сделать отчеты действительно интерактивными!
🔗 Ссылка на статью: https://proglib.io/sh/lsb0fEuYSv
Библиотека дата-сайентиста
✍🏻 Расскажите, какова функция Inspector в Unity 3D
Инспектор — это контекстно-зависимая панель, на которой вы можете настроить положение, масштаб и поворот игровых объектов, перечисленных на панели иерархии.
Библиотека собеса по С#
✍🏻 Чем отличаются интерфейсы от абстрактных классов в C#?
Интерфейсы и абстрактные классы в C# являются механизмами для реализации полиморфизма и обеспечения повторного использования кода. Вот основные отличия между ними:
1. Отношение к классам-наследникам: Абстрактный класс может иметь как абстрактные, так и конкретные (реализованные) методы. Интерфейс же предоставляет только определения методов. Класс может наследоваться только от одного абстрактного класса, но может реализовывать несколько интерфейсов.
2. Реализация: Абстрактным классам разрешено иметь переменные экземпляра и иметь реализацию методов. Интерфейсы могут иметь только методы (и свойства) без реализации, только сигнатуры. Класс, реализующий интерфейс, должен предоставить реализацию всех методов и свойств интерфейса.
3. Использование: Абстрактные классы применяются, когда некоторые базовые методы и свойства должны быть доступны и переопределены в классах-наследниках. Интерфейсы используются для создания контракта, который должны выполнить классы, обеспечивая использование полиморфизма.
Оба механизма полезны в разных сценариях разработки. Выбор между использованием абстрактных классов и интерфейсов зависит от конкретных требований проекта.
Библиотека собеса по С#
💡 Что такое оператор перехода в C#?
Оператор перехода в C# используется для передачи управления программой из одной точки в другую точку программы.
Библиотека собеса по С#
Какой из них лучше/быстрее, switch или операторы if-else-if, и почему?
Среди этих двух оператор switch считается быстрее, чем оператор if-else-if. Это потому, что switch не проверяет предыдущие операторы, а в случае if-else-if каждое условие должно быть проверено.
Библиотека собеса по С#
