C# собеседования
769 subscribers
104 photos
222 links
Подготовка к собеседованиям на позицию C#-разработчик

Еще больше на сайте https://frontview-it.ru

Backend собеседования - @frontview_backend
C# работа - @frontview_csharp_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
Слабые ссылки (WeakReference) позволяют ссылаться на объект, не препятствуя его сборке мусора. Это полезно для кэширования или управления памятью, когда объект может быть удален, если на него нет сильных ссылок.


using System;

var strongRef = new object();
var weakRef = new WeakReference(strongRef); // Создание слабой ссылки

Console.WriteLine("Is alive: " + weakRef.IsAlive); // Проверка, жив ли объект

strongRef = null; // Удаление сильной ссылки
GC.Collect(); // Принудительный вызов сборщика мусора

Console.WriteLine("Is alive after GC: " + weakRef.IsAlive); // Объект может быть удален


Слабые ссылки не удерживают объект в памяти, что позволяет избежать утечек памяти, но требует проверки на доступность объекта перед использованием.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С# собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
LINQ to Objects — это технология, позволяющая выполнять запросы к коллекциям в памяти, таким как массивы, списки и другие типы, реализующие IEnumerable<T>. LINQ предоставляет удобный синтаксис для фильтрации, сортировки, группировки и преобразования данных.


using System;
using System.Linq;
using System.Collections.Generic;

var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList(); // Фильтрация четных чисел

foreach (var num in evenNumbers) {
Console.WriteLine(num); // Вывод результата
}


LINQ to Objects использует методы расширения, такие как Where, Select, OrderBy, что делает код более читаемым и выразительным. Это мощный инструмент для работы с коллекциями.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С# собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍65🤔2
▶️Thread — низкоуровневая абстракция операционной системы для выполнения кода параллельно. Потоки создаются напрямую через класс Thread, управляются вручную и потребляют значительные ресурсы.

Task — высокоуровневая абстракция, представляющая асинхронную операцию. Работает поверх пула потоков, что снижает нагрузку. Задачи упрощают управление асинхронным кодом через await/async.


// Создание и запуск потока
var thread = new Thread(() => Console.WriteLine("Thread"));
thread.Start();

// Создание и запуск задачи
var task = Task.Run(() => Console.WriteLine("Task"));


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

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С# собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111🔥1
Array — фиксированная по размеру коллекция с элементами одного типа. Размер задается при создании и не может быть изменен. Доступ к элементам быстрый по индексу.

List<T> — динамическая коллекция, автоматически расширяется при добавлении элементов. Поддерживает удобные методы (Add, Remove, Find). Работает медленнее Array при частых вставках/удалениях из-за перераспределения памяти.


// Создание массива
int[] array = new int[5];

// Создание списка
List<int> list = new List<int>();


Array эффективен для статических данных, List<T> — для динамических коллекций с изменяемым размером.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С# собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
Enum (перечисление) — это тип данных, который позволяет задать набор именованных констант. Используется для улучшения читаемости кода и предотвращения ошибок, связанных с использованием "магических чисел".

enum DayOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}


В этом примере создается перечисление DayOfWeek, представляющее дни недели. Каждый элемент имеет числовое значение, начиная с 0 (Monday = 0, Tuesday = 1 и т.д.).

DayOfWeek today = DayOfWeek.Friday;
if (today == DayOfWeek.Friday)
{
Console.WriteLine("Сегодня пятница!");
}


Здесь переменной today присваивается значение Friday, и выполняется проверка на соответствие этому значению. Использование enum делает код более понятным и безопасным.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С# собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91🤔1🤩1