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

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

@csharp_interview_lib

Вопросы с собеседований по C# и ответы на них.

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

Учиться у нас: https://clc.to/QRJIVw

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.me/proglibrary/9197
Subscribers
5.65K
Photos
308
Videos
7
Links
733

Showing posts older than #20 · Back to latest

Older Posts 17 shown
Post #19 2.07K
Чем отличаются интерфейсы от абстрактных классов в C#?

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

1. Отношение к классам-наследникам: Абстрактный класс может иметь как абстрактные, так и конкретные (реализованные) методы. Интерфейс же предоставляет только определения методов. Класс может наследоваться только от одного абстрактного класса, но может реализовывать несколько интерфейсов.

2. Реализация: Абстрактным классам разрешено иметь переменные экземпляра и иметь реализацию методов. Интерфейсы могут иметь только методы (и свойства) без реализации, только сигнатуры. Класс, реализующий интерфейс, должен предоставить реализацию всех методов и свойств интерфейса.

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

Оба механизма полезны в разных сценариях разработки. Выбор между использованием абстрактных классов и интерфейсов зависит от конкретных требований проекта.
  • 👍 10
  • 🌚 4
Post #18 1.65K
Как вы бы подошли к оптимизации сцены в Unity для виртуальной реальности (VR), учитывая ограничения по производительности? Обсудите как вы бы управляли ресурсами, освещением и рендерингом.

Этот вопрос тестирует понимание кандидатом специфических аспектов оптимизации в Unity для VR. Оптимизация для VR имеет особое значение из-за высоких требований к производительности и низкой задержке. Ответ должен включать стратегии по оптимизации ассетов и текстур, управлению памятью, использованию LOD (Level of Detail) систем для управления сложностью моделей, а также эффективному использованию освещения и теней. Кандидат также может обсудить использование различных профилировщиков и инструментов для мониторинга производительности, а также специфические подходы к рендерингу для VR, такие как сокращение overdraw и использование occlusion culling.
  • 👍 1
Post #17 1.65K
Что такое закрытый класс?

Мы используем ключевое слово “sealed” для создания закрытого класса. Классы создаются как закрытый класс, когда нет необходимости наследовать это дальше или когда есть необходимость ограничить наследование этого класса.
  • 👍 10
Post #16 1.73K
Объясните, что такое фиксированный временной шаг в Unity3D? Почему настройка фиксированного времени влияет на скорость игры?

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

Если частота кадров упадет ниже некоторого порогового значения, установленного для фиксированного временного шага, это может повлиять на скорость игры.
  • 👍 4
Post #14 1.71K
Форматирование целых чисел

Для форматирования целочисленных значение применяется описатель «d».

Число после описателя указывает, сколько цифр будет в числовом значении. Если в исходном числе цифр меньше, то к нему добавляются нули.
  • 👍 8
Post #13 1.88K
Как в C# реализуется паттерн "Lazy Initialization" и какие меры предосторожности необходимо предпринять для его корректного использования в многопоточных приложениях?

В C# "Lazy Initialization" реализуется с помощью класса Lazy<T>, который обеспечивает отложенную инициализацию объекта. Для обеспечения безопасности в многопоточных приложениях, важно использовать конструктор Lazy<T> с параметром LazyThreadSafetyMode, который контролирует доступ к объекту и обеспечивает потокобезопасную инициализацию. Это предотвращает создание нескольких экземпляров в многопоточной среде и гарантирует, что объект будет инициализирован только один раз.
  • 👍 9
Post #12 1.63K
Что будет выведено на консоль в результате выполнения следующей программы и почему?

При выполнении программа сгенерирует исключение System.NullReferenceException, потому что поскольку переменная tom НЕ представляет объект Employee, то преобразование tom as Employee возвратит null.
  • 👍 10
Post #11 1.74K
Что подразумевается под свойствами в C#?

В C# существуют специальные методы доступа, которые и именуются свойствами. Они обеспечивают простой доступ к полям класса для получения или установки их значения. Определение свойства содержит блоки get и set. В блоке get возвращается значение поля, а в блоке set устанавливается с помощью параметра value, которое представляет передаваемое значение.
  • 👍 12
  • ❤ 1
Post #10 1.83K
Может ли DateTime равняться null? Почему?

Нет, т.к. DateTime это тип значение, наследован из System.ValueType.
  • 👍 2
  • ❤ 1
Post #9 1.97K
Какова алгоритмическая сложность для операций чтения и записи для коллекции Dictionary?

Чтение очень быстрое, потому что используются хэш-таблицы и сложность в этом случае стремится к O(1).

Запись проходит тоже очень быстро (O(1)), в том случае если .Count меньше емкости, если же больше, то скорость стремится к O(n).
  • 👍 14
Post #8 1.92K
В чем различие между операцией cast (приведения типов) и оператором as?

Ответ:
В случае ошибки cast выбрасывает исключение InvalidCastException, а оператор as возвращает null.
  • 👍 35
Post #7 1.93K
Что выведет на консоль следующая программа и почему?

Ответ:
Программа не скомпилируется, поскольку переменная name, к которой мы хотим обратиться в методе Main, не имеет модификаторов. Следовательно, по умолчанию она имеет модификатор доступа private. Поэтому вне класса Person к этой переменной мы обратиться не можем.
  • 😁 29
  • 👍 22
  • ❤ 3
  • 🥱 3
Post #6 2.16K
Какой результат выдаст программа ниже?

Ответ:
Эта программа выведет число «10» десять раз.

И вот почему: delegate добавляется циклически, однако параметр i передаётся по ссылке. Поэтому, по окончании цикла i равно 10, и при каждом запуске delegate будет выводиться работать с этим значением.
  • 👍 15
Post #5 1.88K
Что такое Boxing и Unboxing?

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

Обратная операция распаковки осуществляется явным преобразованием object в тип значения. Если упакованный объект не соответствует требуемому типу, то выбрасывается исключение InvalidCastException.
  • 👍 12
Post #4 1.8K
Чем отличаются друг от друга классы String и StringBuilder?

Объект класса String представляет собой неизменяемую строку.
Когда выполняется какой-нибудь метод класса String, система создает новый объект в памяти с выделением ему достаточного места.

Объект класса StringBuilder представляет собой динамическую строку.
При создании строки StringBuilder выделяет памяти больше, чем необходимо этой строке, а при добавлении к ней каких-либо элементов строка не пересоздается заново.
В том случае если выделенной памяти не будет хватать для добавления новых элементов, то емкость объекта будет увеличена.
  • 👍 11
Post #3 1.55K
Как открыть аудиофайл?

Для открытия аудио файла в C# можно воспользоваться классом SoundPlayer из пространства имен System.Media.

В данном примере мы используем класс SoundPlayer для открытия и воспроизведения аудио файла. Путь к аудио файлу указывается в переменной audioFilePath. Затем мы загружаем аудио файл с помощью свойства SoundLocation, а затем воспроизводим его с помощью метода Play(). Если происходит ошибка при открытии аудио файла, выводим сообщение об ошибке.
  • 👍 8
Post #1
Channel created
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →