Библиотека собеса по C# | вопросы с собеседований
5.37K subscribers
157 photos
90 links
Вопросы с собеседований по C# и ответы на них.

Список наших каналов: https://t.me/proglibrary/9197
Учиться у нас: https://proglib.io/w/4c2f1c3b

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
Объясните, как Unity обрабатывает и управляет сценами и активами, в частности, расскажите о процессе загрузки и выгрузки сцен, а также о том, как управлять памятью и ресурсами при работе с большим количеством активов и сложными сценами.

Unity управляет сценами и активами с использованием своего внутреннего механизма управления ресурсами. Загрузка сцен осуществляется через класс SceneManager, который позволяет загружать, выгружать и переключаться между сценами. Для оптимизации памяти и производительности используются техники, такие как асинхронная загрузка сцен (SceneManager.LoadSceneAsync), что позволяет избежать подвисаний игры во время загрузки. Управление активами включает в себя правильное использование ассетбандлов для загрузки и выгрузки ресурсов по требованию, что снижает нагрузку на память. Важно также использовать профайлер для отслеживания использования ресурсов и оптимизации загрузки активов, особенно в больших и сложных сценах, чтобы обеспечить стабильную и эффективную работу приложения.
Что такое статические объявленные переменные в C#?

Каждый объект C# имеет переменные-члены, имеющие определенную область действия. Мы можем использовать статические объявленные переменные, чтобы гарантировать, что каждый экземпляр объекта класса имеет одно и то же значение. Это возможно, поскольку каждый объект класса использует один и тот же экземпляр статической переменной класса.

Имя статических объявленных переменных относится к неизменному значению (ключевое слово static), которое строго типизировано (объявлено), но обычно их называют просто статическими переменными.
Зачем вам реализовывать оператор using в C#?

Для управления и автоматического освобождения ресурсов после завершения обработки объекта. В частности, реализуя оператор using, мы неявно гарантируем, что метод .Dispose() вызывается для автоматического освобождения неиспользуемых ресурсов.
Объясните, как работают асинхронные делегаты в C#, и как они могут быть использованы для улучшения производительности приложений?

Асинхронные делегаты в C# позволяют выполнить метод асинхронно в отдельном потоке. Это делается с помощью методов BeginInvoke и EndInvoke. BeginInvoke запускает метод асинхронно, а EndInvoke ожидает завершения метода и возвращает результат. Асинхронные делегаты полезны для выполнения длительных операций, таких как I/O операции или сложные вычисления, без блокирования основного потока выполнения. Это улучшает отзывчивость приложения, особенно в GUI-приложениях, где важно поддерживать активный пользовательский интерфейс, в то время как выполняются фоновые задачи. Однако, следует управлять ресурсами и обрабатывать исключения при использовании асинхронных делегатов, чтобы избежать утечек памяти и других проблем.
Что такое типы значений и ссылочные типы в C#?

Тип значения: Непосредственно сохраняет значение переменных данных внутри выделенного пространства памяти.

Тип ссылки: переменные данные не сохраняются напрямую в своей ячейке памяти, а вместо этого сохраняется ссылка на другой адрес памяти, который содержит значение переменных данных, поэтому эквивалент указателя.
Опишите тип данных структуры в C#.

Структура — это тип данных типа значения в C#, который наследуется от System.Value. Они используются для хранения структур данных и обычно небольших объемов данных. Структуры могут использовать параметризованные конструкторы, и они объявляются с ключевым словом struct.

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

Намного проще создавать экземпляры классов, массивы и коллекции при помощи специальных инициализаторов.

Приведенный выше пример может быть очень полезным при unit-тестировании, однако в других ситуациях лучше создавать экземпляры при помощи конструкторов.
⚡️Proglib запускает канал про ИИ в сфере видео

Вот несколько топовых постов за последнее время:

⭐️Инструмент, который сам делает короткие вертикальные видео из ваших длинных роликов, например, на ютуб
⭐️Подборка нейро-генераторов видео с пробным периодом
⭐️Анонс ИИ-«нетфликса», который будет штамповать вам мультики по запросам

👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻📎 27 сайтов с задачками для оттачивания навыков программирования

Программистам без практики никуда. Поэтому время прокачать навыки: решение задач — хороший способ развить навыки разработки.

Вам под силу эти задачи?➡️

🔗 Ссылка на сайты
Please open Telegram to view this post
VIEW IN TELEGRAM
Может ли класс реализовать два интерфейса, у которых объявлены одинаковые методы? Если да, то каким образом?

Может. Общие методы при этом надо реализовывать один раз неявно или два раза явно (с указанием имени интерфейса). При явной реализации метод нельзя будет вызывать без приведения экземпляра класса к интерфейсу (если только не будет третьей реализации метода в классе).
Если два метода интерфейса выполняют разные действия, то неявная реализация интерфейсов может быть некорректной.
✍️Библиотека программиста» находится в поиске автора оригинальных статей

Кто нужен?
● Энтузиасты (джуны и выше), которые держат руку на пульсе, читают помимо книг зарубежные техноблоги
● Энтузиасты, которым есть что сказать

Тематика
● DevOps
● В четырех случаях из пяти вы предлагаете тему статьи

Объем
● От 7 до 15 тыс. знаков без учета кода
● 2-3 статьи в месяц

Оплата
● 8к руб. за статью
● Работаем с самозанятыми (компенсируем налог), ИП

Я пишу «так себе», что делать?
Чтобы написать статью, которую не стыдно опубликовать, достаточно овладеть инфостилем. У нас есть бесплатный курс для начинающих копирайтеров «Статьи для IT: как объяснять и распространять значимые идеи». Время прохождения курса: 1-2 недели.

✉️Пишите на hello@proglib.io
🖥️ Что пишут на языке C# [11:24]

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

В этом видео автор рассказывает как раз-таки об общих сферах применения этого языка, а также делится советами, которые сэкономят вам немало времени.

Перейти к просмотру
В чем разница между управляемым и неуправляемым кодом?

Управляемый код был разработан с использованием платформы .NET с использованием C# (или VB.NET) и выполняется непосредственно с помощью среды CLR. В этих сценариях CLR управляет процессами создания, удаления объектов и управления памятью.

Неуправляемый код — это любая база кода, разработанная без платформы .NET. Это означает, что выполнение кода не обрабатывается CLR. Неуправляемый код иногда называют небезопасным кодом, поскольку среда CLR его не обрабатывает и обеспечивает низкоуровневый доступ, который при неправильном программировании может привести к утечкам памяти или другим ошибкам.
🎮Новый канал по разработке игр

Мы наконец-то запустили канал по разработке игр — теперь все самое важное и полезное из мира геймдева можно узнать в одном месте.

👉Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое рефлексия в C#?

Процесс описания метаданных для типов, полей и методов в вашем коде во время выполнения с использованием пространства имен System.Reflection.

Это может быть полезно для «обратного проектирования» вашего кода после его выполнения, что позволяет вам наблюдать и изучать важные метаданные для различных элементов вашего кода.
👀Что из этого сгенерировала нейросеть?

Подписывайтесь на наш новый канал про нейросети для создания изображений, там есть:

🌸Новые нейросети и инструменты, например, вот модель генерирует картинки по наброску
🌸Промты для разных задач
🌸Лайфхаки по использованию нейросетей

👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Объясните различия между глубоким и поверхностным копированием объектов в C#. Как можно выполнить каждый тип копирования?

Неглубокая копия создает новый объект, но не дублирует внутренние ссылки. Глубокая копия создает новый объект и рекурсивно клонирует все внутренние ссылки. Поверхностное копирование можно выполнить с помощью MemberwiseClone, тогда как глубокое копирование требует специальной реализации.
Самые полезные каналы для программистов в одной подборке!

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

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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 запрещена на территории РФ
Proglib запускает канал Азбука айтишника

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

У нас есть рубрики:
База — в ней рассказываем про термины из IT простым языком
Проект — объясняем, из чего состоят айтишные проекты и сколько они могут стоить
Психология айтишника — тут говорим про софт-скиллы, особенности работы и взаимодействия

👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑‍💻 Как сделать мультиплеер в Unity

Автор использует Photon для реализации мультиплеера в игре. Получается простая игра, в которой персонажи ходят по полю, проигрывают анимации и ничего не делают.

Смотреть видео
Краткое описание процесса обработки файлов в C#

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

При записи в файл мы используем выходной поток, а при чтении из файла — входной поток. Мы используем пространство имен System.IO для доступа к статическим методам обработки файлов.