C# | Вопросы собесов
رفتن به کانال در Telegram
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+nebTPWgpeGs1OWFi Задачи t.me/+Xy-0H7xKlgo0NDVi Вакансии t.me/+BQFHXZQ0zrViNGIy
نمایش بیشتر5 048
مشترکین
-124 ساعت
-157 روز
-2530 روز
آرشیو پست ها
5 047
Получи грант на обучение в Центральном университете
Получи несгораемый грант до 2 800 000 ₽ на учебу в бакалавриате Центрального университета. Гранты покрывают от 25 до 100% стоимости обучения. Сумма гранта не уменьшается, а может увеличиться за дополнительные достижения и успехи в учебе
Подать заявку
#реклама
apply.centraluniversity.ru
О рекламодателе
5 047
🤔 Что произойдет, если у метода в C# нет возвращаемого значения и указать return?
5 047
Что такое сборщик мусора ?
Спросят с вероятностью 22%
Сборщик мусора (Garbage Collector, GC) — это форма автоматического управления памятью. Он отслеживает каждый объект, выделенный в куче, и определяет, какие объекты более не доступны для приложения, а затем освобождает память, занимаемую этими объектами. Это ключевой компонент во многих современных языках программирования и средах выполнения, облегчая задачу управления памятью.
Основные этапы работы:
1️⃣Маркировка (Marking): Сборщик мусора периодически проходит через все объекты в куче, начиная с "корней" (объектов, непосредственно доступных в программе, например, через переменные в стеке вызовов и глобальные переменные). Он отмечает все объекты, до которых можно добраться напрямую или косвенно.
2️⃣Очистка (Sweeping): После маркировки доступных объектов, сборщик мусора удаляет все непомеченные объекты, освобождая ресурсы, которые они занимали.
3️⃣Компактификация (Compacting): Некоторые сборщики мусора перемещают оставшиеся объекты, чтобы уменьшить фрагментацию памяти и улучшить производительность работы с памятью.
Почему он важен
Преимущества:
✅Предотвращение утечек памяти: Автоматически освобождает память, которая больше не используется, тем самым предотвращая утечки памяти, которые могут привести к исчерпанию доступных ресурсов.
✅Уменьшение ошибок программирования: Уменьшает количество ошибок, связанных с управлением памятью, таких как двойное освобождение памяти или ошибки доступа к "висячим" (уже освобожденным) указателям.
✅Упрощение разработки: Разработчикам не нужно явно освобождать память, что упрощает процесс написания и поддержки кода.
Ограничения:
Несмотря на многие преимущества, сборщик мусора также имеет недостатки:
✅Производительность: Процесс сборки мусора может быть ресурсоёмким и может привести к заметным паузам в выполнении программы, особенно если куча большая.
✅Непредсказуемость: Точное время сборки мусора может быть непредсказуемым, что может создавать проблемы в приложениях с реальным временем.
В среде .NET, например, сборщик мусора управляется CLR (Common Language Runtime) и работает автоматически, облегчая задачу управления памятью для разработчиков C# и других .NET-языков. Сборка мусора управляется JVM (Java Virtual Machine), которая предлагает разные типы сборщиков мусора, настраиваемых под различные типы приложений.
Сборщик мусора является мощным инструментом для управления памятью, обеспечивая безопасность и удобство, но требует понимания его влияния на производительность приложения.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
5 047
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
5 047
🤔 Какая из следующих операций в C# не поддерживает перегрузку операторов?
5 047
Канал от Яндекс Аренды для собственников
Чтобы сдавать жильё без проблем, быстро и выгодно — и не скучать в процессе!
Что здесь полезного:
1. Ликбез — что такое СОИ, ПОВК и ВДГО в ЕПД;
2. Инструкции — как, где, когда платить налоги с аренды;
3. Новости — как меняются тарифы и правила оплаты отопления;
4. Живые обсуждения, например, стоит ли предупреждать соседей о том, что вы будете сдавать квартиру;
5. Розыгрыши призов: умных колонок, украшений для дома, сертификатов.
Подписаться
#реклама
О рекламодателе
5 047
Что такое абстракция ?
Спросят с вероятностью 22%
Абстракция — это один из основных принципов ООП, который позволяет управлять сложностью программ, выделяя самую существенную информацию об объекте, при этом уменьшая детализацию представления. Это концептуальный процесс, который включает выделение важных характеристик объекта, отличающих его от других объектов, и минимизацию или игнорирование несущественных деталей.
Основные аспекты:
1️⃣Сокрытие деталей реализации: Позволяет скрыть детали реализации объекта и предоставлять пользователям только те функциональности, которые необходимы для использования объекта. Это уменьшает сложность программы и увеличивает её удобство в использовании.
2️⃣Обобщение функционала: Позволяет создавать общие решения, которые можно легко адаптировать или расширить для решения специфических задач. Это достигается за счет определения общих интерфейсов или базовых классов, которые могут быть уточнены или расширены в производных классах.
3️⃣Уменьшение взаимозависимости компонентов: Поскольку она позволяет разделять интерфейс и реализацию, компоненты программы могут быть менее зависимы друг от друга. Это упрощает замену одних компонентов другими и делает код более модульным.
public abstract class Vehicle
{
public abstract void Move();
public void Start()
{
Console.WriteLine("Vehicle has started.");
}
}
public class Car : Vehicle
{
public override void Move()
{
Console.WriteLine("Car is moving.");
}
}
public class Airplane : Vehicle
{
public override void Move()
{
Console.WriteLine("Airplane is flying.");
}
}
В этом примере Vehicle является абстрактным классом, который определяет абстрактный метод Move() и конкретный метод Start(). Метод Move() абстрактен, потому что каждый вид транспорта перемещается по-своему: автомобиль едет, самолет летит. Класс Vehicle предоставляет абстракцию для всех видов транспортных средств, скрывая детали о том, как именно они перемещаются, и предоставляя общий интерфейс для их запуска.
Абстракция позволяет создавать более устойчивые к изменениям, расширяемые и легко поддерживаемые системы. Она играет важную роль в управлении сложностью программ, позволяя фокусироваться на том, что система делает, а не на том, как она это делает. Это способствует лучшей архитектуре программного обеспечения и облегчает совместную работу и масштабирование проектов.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 047
Такси для бизнеса. Яндекс Go
Оптимизируйте свои расходы и повысьте эффективность бизнеса с Яндекс Go
Узнать больше
#реклама
business.go.yandex
О рекламодателе
5 047
Что такое инкапсуляция ?
Спросят с вероятностью 22%
Инкапсуляция — это один из основных принципов ООП, который заключается в сокрытии внутренних данных и поведений объекта от внешнего мира. Это не только способ ограничить доступ к данным объекта, но и метод управления сложностью в программном проекте, позволяя разработчикам скрывать детали реализации и выделять только необходимый интерфейс взаимодействия с объектом.
Основные аспекты:
1️⃣Скрытие данных: Приватные поля класса скрыты от внешнего доступа, что предотвращает непреднамеренные изменения состояния объекта, которые могут привести к ошибкам или некорректному поведению программы.
2️⃣Контроль доступа: Использование модификаторов доступа, таких как
private, protected, и public, позволяет точно настраивать уровень доступа к методам и полям класса.
3️⃣Объединение данных и методов: Инкапсуляция также включает в себя объединение данных (переменных) и методов, которые работают с этими данными, в единую структуру — класс.
public class BankAccount
{
private decimal balance; // Приватное поле, недоступное извне
public BankAccount(decimal initialBalance)
{
balance = initialBalance;
}
// Публичный метод для добавления средств
public void Deposit(decimal amount)
{
if (amount > 0)
{
balance += amount;
}
}
// Публичный метод для снятия средств
public void Withdraw(decimal amount)
{
if (amount > 0 && amount <= balance)
{
balance -= amount;
}
}
// Публичный метод для получения текущего баланса
public decimal GetBalance()
{
return balance;
}
}
В этом примере balance — это приватное поле, которое нельзя прочитать или изменить напрямую извне класса. Вместо этого предоставляются публичные методы Deposit, Withdraw и GetBalance для управления балансом, что обеспечивает контроль над тем, как внешние компоненты могут взаимодействовать с внутренним состоянием объекта.
Зачем она нужна
Инкапсуляция помогает в достижении следующих целей:
✅Повышение уровня безопасности: Защита внутреннего состояния объекта от непреднамеренных или вредоносных изменений.
✅Упрощение технического обслуживания и модификации: Изменения внутренней реализации класса могут быть выполнены с минимальным воздействием на код, который использует этот класс.
✅Разделение интерфейса и реализации: Пользователи класса могут взаимодействовать с ним через четко определенный интерфейс без необходимости понимания деталей его реализации.
Инкапсуляция является ключевым элементом в проектировании надежных и масштабируемых систем, способствующих поддержанию порядка в сложных программных проектах и облегчающих управление изменениями в долгосрочной перспективе.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 047
Jobski - твой помощник при поиске работы в IT
Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек технологий.
Узнать больше
#реклама
jobski.ru
О рекламодателе
5 047
🤔 Какое ключевое слово используется для обработки исключений в C#?
5 047
Что такое join ?
Спросят с вероятностью 22%
Термин "join" может относиться к нескольким различным концепциям в зависимости от контекста, в котором он используется. Рассмотрим два основных применения: операции соединения в базах данных и методы синхронизации потоков в программировании.
1️⃣Join в базах данных
Относится к операции SQL, которая позволяет объединять строки из двух или более таблиц на основе общего поля между ними. Это одна из ключевых концепций в реляционных базах данных, позволяющая эффективно извлекать связанные данные из нескольких таблиц.
Основные типы:
✅INNER JOIN: Возвращает строки, когда есть совпадение в обеих таблицах.
✅LEFT (OUTER) JOIN: Возвращает все строки из левой таблицы и совпавшие строки из правой таблицы. Если совпадения нет, результат будет содержать
NULL на местах колонок правой таблицы.
✅RIGHT (OUTER) JOIN: Возвращает все строки из правой таблицы и совпавшие строки из левой таблицы. Если совпадения нет, результат будет содержать NULL на местах колонок левой таблицы.
✅FULL (OUTER) JOIN: Возвращает строки, когда есть совпадение в одной из таблиц. Если совпадения нет, в результате будет NULL на местах колонок другой таблицы.
SELECT Employees.Name, Departments.DepartmentName
FROM Employees
INNER JOIN Departments ON Employees.DepartmentId = Departments.Id;
Этот запрос возвращает имена сотрудников вместе с названиями их отделов, основываясь на связи через DepartmentId.
2️⃣Join в многопоточном программировании
Используется для ожидания завершения потока. Когда один поток вызывает join() на другом потоке, первый поток приостанавливает своё выполнение до тех пор, пока поток, на котором был вызван join(), не завершится.
Thread thread = new Thread(() -> {
System.out.println("Новый поток запущен");
try {
Thread.sleep(2000); // Имитация работы потока
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
System.out.println("Новый поток завершен");
});
thread.start();
thread.join(); // Ожидаем завершения потока
System.out.println("Основной поток завершен");
В этом примере основной поток будет ожидать завершения нового потока перед тем, как вывести сообщение о своем завершении.
Понятие "join" может быть применено в разных областях программирования, но в каждом случае оно связано с идеей объединения или ожидания. В базах данных это объединение таблиц для получения комплексных данных — синхронизация потоков для управления порядком выполнения операций.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 047
Настоящий айтишник в отпуск не ходит.
Code Review – кладезь отборных IT-мемасов. Внутри вся будничная жиза: джуна, мидла, сеньора и всех, кто так или иначе связан с айтишкой.
⚠️ Колкий юмор для тех, кто в теме.
Подпишись: @coode_review
5 047
Как работает Entity Framework ?
Спросят с вероятностью 22%
Entity Framework (EF) — это ORM (Object-Relational Mapping) фреймворк, который позволяет разработчикам взаимодействовать с базами данных, используя объектно-ориентированные модели. Это упрощает разработку приложений, автоматизируя большую часть кода, необходимого для доступа к данным. EF позволяет программистам работать с данными на более высоком уровне абстракции, с использованием объектов и классов, без необходимости писать SQL-запросы напрямую.
Как он работает
EF предоставляет два основных способа работы: Database-First и Code-First.
1️⃣Database-First
Подход начинается с существующей базы данных. С помощью инструментов, таких как Visual Studio, можно автоматически создать модель, которая отображает таблицы базы данных на классы в коде. Эти классы, которые являются частью .NET проекта, используются для взаимодействия с данными в базе данных.
2️⃣Code-First
Позволяет определять модели данных сначала в коде. Затем EF использует эти модели для генерации базы данных. Это удобно, когда разработка начинается с нуля, и нет начальной базы данных. Code-First также предоставляет возможности для миграций, позволяя разработчикам управлять изменениями в структуре базы данных через версии приложения.
Основные компоненты:
✅DbContext: Это класс, который управляет отношениями между объектами C# и базой данных. Он включает в себя функции для запросов, сохранения данных и конфигурации маппинга.
✅DbSet: Представляет коллекцию объектов, которая связана с определенной таблицей в базе данных. Разработчики могут использовать объекты
DbSet для запросов и манипуляций с данными.
✅LINQ to Entities: Язык запросов, который позволяет писать запросы к данным, используя синтаксис LINQ C#. Эти запросы переводятся в SQL-запросы EF когда они исполняются.
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Blogging;Integrated Security=True");
}
}
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
class Program
{
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
var blog = new Blog { Name = "Первый блог" };
db.Blogs.Add(blog);
db.SaveChanges();
var post = new Post { Title = "Hello World", Content = "Это первый пост", BlogId = blog.BlogId };
db.Posts.Add(post);
db.SaveChanges();
var query = from b in db.Blogs
orderby b.Name
select b;
foreach (var b in query)
{
Console.WriteLine(b.Name);
}
}
}
}
Этот пример показывает, как можно создать контекст базы данных, определить классы модели и использовать их для работы с данными. Entity Framework автоматически создает и обновляет базу данных в соответствии с моделью, определенной в коде.
Entity Framework значительно упрощает разработку приложений за счет предоставления мощного слоя абстракции для работы с базами данных. Он позволяет концентрироваться на бизнес-логике, минимизируя рутинную работу по написанию SQL-запросов и управлению схемой базы данных.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 047
Коммутатор ЦОД MES5500-32 Eltex за 1 минуту
- 32x40G/100G (QSFP+ / QSFP28)
- 2x10G (SFP+)
- RS-232 (RJ-45)
- OOB
- USB 2.0
Пропускная способность - 6,4 Тбит/с
2 модуля питания с горячей заменой:
PM600-220/12 — 220В AC
PM600-48/12 — 48В DC
Настройка:
- CLI через Telnet, SSH (Cisco-like)
- веб-интерфейс
- SNMP
Комплектация:
- Сертификат
- Паспорт устройства
- Комплект крепления в 19"стойку
- Пылезащитные заглушки для портов
Узнать цену
#реклама
eltexcm.ru
О рекламодателе
5 047
🤔 Какое ключевое слово используется для объявления константы в C#?
5 047
Как работает async/await ?
Спросят с вероятностью 22%
Ключевые слова async и await — это механизмы для упрощения написания асинхронного кода, которые делают асинхронные операции более читаемыми и легко напоминающими синхронный код. Эти инструменты особенно полезны в сценариях, связанных с выполнением операций ввода-вывода или других длительных задач, таких как запросы к веб-сервисам, доступ к файлам или базам данных. Использование
async и await помогает избежать блокировки пользовательского интерфейса и улучшает отзывчивость приложения.
1️⃣Определение async
Используется для определения метода как асинхронного. Это не делает метод асинхронным само по себе, но указывает, что внутри метода возможно использование await. Асинхронные методы обычно возвращают Task или Task<T>, где T — тип возвращаемого значения. В случае, если метод не должен возвращать значение, он может возвращать Task. Если метод помечен как async void, это обычно используется для обработчиков событий, где возвращаемое значение не требуется.
2️⃣Использование await
Используется для приостановки выполнения асинхронного метода до тех пор, пока не завершится асинхронная операция, не блокируя при этом поток, в котором он выполняется. Когда выполнение асинхронной операции завершается, исполнение метода возобновляется с того места, где оно было приостановлено. Это позволяет другим операциям (например, обновлению пользовательского интерфейса) продолжать работать без задержек.
3️⃣Пример использования
public async Task<string> FetchWebPageAsync(string url)
{
using (HttpClient client = new HttpClient())
{
string result = await client.GetStringAsync(url);
// Код после 'await' выполняется после завершения GetStringAsync
return result;
}
}
В этом примере метод FetchWebPageAsync асинхронно загружает содержимое веб-страницы. Вызов await client.GetStringAsync(url) приостанавливает выполнение метода FetchWebPageAsync до тех пор, пока не будет получен ответ от метода GetStringAsync. Важно отметить, что в это время поток не блокируется, что позволяет пользовательскому интерфейсу или другим операциям продолжать работать.
Преимущества:
✅Улучшение отзывчивости приложения: Главный поток (например, пользовательский интерфейс) не блокируется, что позволяет приложению оставаться отзывчивым на действия пользователя.
✅Упрощение кода: Код с использованием async и await проще для понимания и поддержки, по сравнению с традиционными подходами к асинхронному программированию, такими как использование обратных вызовов (callbacks) или цепочек продолжений (ContinueWith).
Эти механизмы являются мощными инструментами для создания производительного и отзывчивого ПО, особенно в средах, где важна скорость ответа интерфейса и эффективность обработки ввода-вывода.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 047
Реклама для бизнеса любого уровня в Яндекс Директе
Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌
Начните прямо сейчас ⚡
Зарегистрироваться
#реклама
direct.yandex.ru
О рекламодателе
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
