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

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

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

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

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
🛠️ API-документация без головной боли: ТОП-11 инструментов

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

🔗 Читать статью
Что такое глобальный кэш сборок в C#?

Глобальный кэш сборок (GAC) — это централизованный репозиторий или кэш для хранения и совместного использования сборок .NET (DLL) на машине. GAC является частью .NET Framework и используется для предотвращения конфликтов DLL и обеспечения параллельного выполнения различных версий одной и той же сборки.

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

Метод ToLocalTime() преобразует время UTC в локальное время, добавляя смещение относительно времени по Гринвичу.

Метод ToUniversalTime(), наоборот, преобразует локальное время во время UTC, то есть вычитает смещение относительно времени по Гринвичу.

Остальные методы преобразуют дату к определенному формату.
🛠 Сага: эффективный шаблон микросервисной архитектуры

Полную бизнес-транзакцию, как правило, очень сложно описать с помощью одной транзакции в базе данных. Возьмем, к примеру, процесс покупки в онлайн-магазине — с момента нажатия кнопки «Купить» до момента доставки заказа к вашей двери происходит серия шагов:

🔸 Размещение заказа. Пользователь выбирает нужные товары, добавляет их в корзину и начинает процесс оформления заказа. Система сохраняет информацию о видах товаров, их количестве, имени заказчика, адресе и способе доставки.
🔸 Создание счета-фактуры. После размещения заказа создается счет-фактура, который служит основной записью о транзакции и используется для выставления счета и учета.
🔸 Обработка платежа. Инициируется процесс оплаты, пользователь предоставляет данные банковской карты или электронного кошелька. Оплата безопасно обрабатывается, и после успешного завершения заказ подтверждается.
🔸 Отправка товара. После обработки платежа заказ готовится к отправке: создается информация для отслеживания, система уведомляет пользователя об ориентировочной дате доставки.

Каждый из этих шагов включает взаимодействие с различными микросервисами — сервисов заказов, платежным сервисом и сервисом доставки. Для успешного и последовательного выполнения бизнес-транзакции важна безупречная координация всех частей системы. Эта задача кажется очень сложной, но к счастью, есть универсальный и надежный паттерн, который помогает выстроить взаимодействие микросервисов самым оптимальным образом — Сага. О нем и пойдет речь в статье.
Что такое управляемый или неуправляемый код?

Код, написанный с целью получения сервисов управляемой среды выполнения, такой как CLR (Common Language Runtime) в .NET Framework, называется управляемым кодом. Он всегда реализуется управляемой средой выполнения, а не выполняется напрямую операционной системой. Управляемая среда выполнения предоставляет различные типы служб, такие как сборка мусора, проверка типов, обработка исключений, проверка границ и т. д. для автоматического кода без вмешательства программиста. Он также обеспечивает выделение памяти, безопасность типов и т. д. для кода. Приложение, написанное на таких языках, как Java, C#, VB.Net и т. д., всегда нацелено на сервисы среды выполнения для управления выполнением, а код, написанный на этих типах языков, называется управляемым кодом.

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

Условие:

Даны две строки s и f (начальная и конечная) и словарь D (набор слов).

Нужно определить, можно ли преобразовать s в f, используя только слова из словаря D. При этом каждое преобразование должно менять только один символ, а длина слова должна оставаться неизменной. Если преобразование возможно, нужно найти кратчайшую последовательность таких преобразований и вернуть ее длину. Если преобразование невозможно, вернуть "Преобразование невозможно".

Пример ввода 1:
    D = ["cat", "cot", "dot", "dog", "bat", "dag"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': 3

Пример ввода 2:
    D = ["cat", "cot", "bat"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': Преобразование невозможно
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое анонимный тип в C#?

Анонимный тип позволяет пользователям создавать новый тип без необходимости его определения. Это способ определить свойства, доступные только для чтения, в одном объекте без явного определения типа.
Что такое индексаторы в C# .NET?

Индексаторы известны в C# как умные массивы. Это позволяет индексировать экземпляры класса так же, как и массив.
Как убрать тесную связь между двумя классами?

Путем введения интерфейсов между ними и использованием внедрения зависимостей.
Самые полезные каналы для программистов в одной подборке!

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

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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 запрещена на территории РФ
Можно ли выполнить несколько блоков catch в C#?

Нет, в C# при возникновении исключения выполняется только один блок catch. Блоки catch оцениваются последовательно, и будет выполнен первый блок catch, соответствующий типу выброшенного исключения. После того, как соответствующий блок catch найден и выполнен, управление не будет передано ни одному последующему блоку catch в той же структуре блока try-catch.
🎁 256-й день года: 15 подарков, которые оценит каждый программист

Мы собрали 15 идей подарков — от практичных гаджетов до инструментов для профессионального роста. Эти подарки не только упростят рабочий процесс, но и вдохновят на новые достижения. Независимо от того, junior вы или senior, в нашем списке каждый найдёт что-то для себя.

👉 Смотреть список