
🌸 Майская распродажа
Скидки до 70% в каталоге + дополнительно 3,5% по промокоду HAPPYMAY
В каталог
9.1

C# | Вопросы собесов
5.0
2
Поделиться
В избранное
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 2/48
1 час в топе / 24 часа в ленте
Количество:
keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
10 909.08₽10 909.08₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
imageИзображение не доступно для предпросмотра
Современная магистратура от Центрального университета
Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой?
Поступай в магистратуру Центрального университета!
- 4 офлайн программы по востребованным направлениям ИТ
- Онлайн-программа по машинному обучению
- 300 мест с грантами до 1,2 млн руб.
- Вечерние занятия и учеба по выходным — удобно совмещать с работой
- Обучение по модели STEM-образования: на стыке науки, технологий и бизнеса
- Возможность стажировок и трудоустройства в ведущих компаниях
- Государственный диплом за 2 года
Магистратура в Центральном университете — это современный подход к образованию, сильный преподавательский состав и актуальные кейсы от индустрии.
Оставляй заявку на грант уже сейчас!
Подать заявку
#реклама 16+
apply.centraluniversity.ru
О рекламодателе
465
20:45
18.05.2025
🤔 Что бывает, когда количества подключений не хватает?
Когда лимит подключений к базе данных превышен:
1. Запросы начинают блокироваться, вызывая задержки.
2. Сервер может возвращать ошибки подключения.
3. Производительность приложения резко снижается. Решение: увеличить лимит подключений или оптимизировать запросы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
643
16:10
18.05.2025
🤔 Что такое cancellation token в многопоточности?
CancellationToken
в C# используется для координации отмены между потоками. Это механизм, позволяющий запрашивать отмену операции (например, задачи Task
или асинхронного метода), не прерывая поток принудительно.
🚩Зачем нужен `CancellationToken`?
В многопоточных или асинхронных операциях бывает необходимо отменить выполнение кода, например:
Пользователь отменил загрузку файла.
Истек тайм-аут выполнения операции.
Нужно прервать выполнение нескольких связанных задач.
🚩Как работает `CancellationToken`?
🟠Создание `CancellationTokenSource`
Источник токена (CancellationTokenSource
) управляет токеном (CancellationToken
), который передаётся в задачи.
🟠Передача токена в выполняемую операцию
Код регулярно проверяет cancellationToken.IsCancellationRequested
, чтобы определить, нужно ли остановиться.
🟠Запрос на отмену
Если вызывается cts.Cancel()
, все методы, использующие этот токен, получают сигнал об отмене.
🚩Пример использования
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var cts = new CancellationTokenSource();
// Отменяем операцию через 3 секунды
cts.CancelAfter(3000);
try
{
await DoWorkAsync(cts.Token);
}
catch (OperationCanceledException)
{
Console.WriteLine("Операция отменена!");
}
}
static async Task DoWorkAsync(CancellationToken cancellationToken)
{
for (int i = 0; i < 10; i++)
{
cancellationToken.ThrowIfCancellationRequested(); // Проверка отмены
Console.WriteLine($"Работаем... {i}");
await Task.Delay(1000, cancellationToken); // Ожидание с проверкой отмены
}
}
}{}
Ставь 👍 и забирай 📚 Базу знаний709
09:05
18.05.2025
🤔 Использование интерфейса уже является Dependency Inversion?
Да, использование интерфейса поддерживает принцип Dependency Inversion, так как позволяет объектам зависеть от абстракций, а не от конкретных реализаций. Это уменьшает связанность и повышает гибкость кода.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
802
16:10
17.05.2025
🤔 Какие есть способы (протоколы) обмена данными между сервером и клиентом?
При взаимодействии клиента и сервера используются различные*протоколы обмена данными, в зависимости от задачи, скорости, надежности и реального времени.
🚩HTTP(S) – стандартный протокол веба
Клиент (браузер, мобильное приложение) делает запрос к серверу.
Сервер отправляет ответ с данными (HTML, JSON, XML).
Использует методы:
GET
, POST
, PUT
, DELETE
и т. д.
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data));{}
🚩WebSocket – двусторонняя связь в реальном времени
Клиент устанавливает постоянное соединение с сервером.
Сервер и клиент могут отправлять друг другу данные в любое время.
Используется для чата, онлайн-игр, бирж, обновлений в реальном времени.
const socket = new WebSocket('wss://example.com/socket');
socket.onopen = () => socket.send('Привет, сервер!');
socket.onmessage = event => console.log('Сообщение от сервера:', event.data);{}
🚩SSE (Server-Sent Events) – поток данных от сервера
Клиент делает HTTP-запрос, но соединение не закрывается.
Сервер постепенно отправляет данные в виде событий (event-stream
).
Используется для новостей, биржевых данных, уведомлений.
const eventSource = new EventSource('/events');
eventSource.onmessage = event => console.log('Новое сообщение:', event.data);{}
🚩gRPC – быстрый RPC поверх HTTP/2
Клиент вызывает удаленные методы напрямую как обычные функции.
Работает на HTTP/2, использует бинарный формат Protocol Buffers (быстрее, чем JSON).
Используется для высокопроизводительных API, микросервисов.
import grpc
import my_service_pb2
import my_service_pb2_grpc
channel = grpc.insecure_channel('localhost:50051')
stub = my_service_pb2_grpc.MyServiceStub(channel)
response = stub.MyMethod(my_service_pb2.MyRequest(name="Alice"))
print(response.message){}
🚩MQTT – лёгкий протокол для IoT
Работает по модели издатель/подписчик.
Клиент подписывается на тему (topic) и получает сообщения, когда кто-то публикует данные.
Используется для умных устройств, датчиков, IoT.
const mqtt = require('mqtt');
const client = mqtt.connect('mqtt://broker.hivemq.com');
client.on('connect', () => {
client.subscribe('myTopic');
client.publish('myTopic', 'Привет, MQTT!');
});
client.on('message', (topic, message) => {
console.log(`Сообщение из ${topic}: ${message.toString()}`);
});{}
Ставь 👍 и забирай 📚 Базу знаний789
09:05
17.05.2025
🤔 Что значит, что система является RESTful?
Это система, реализующая архитектурный стиль REST (Representational State Transfer). Это означает:
- Используются HTTP-методы как команды (GET, POST, PUT, DELETE).
- Ресурсы имеют уникальные URI.
- Коммуникация без состояния (stateless).
- Возможна кэшируемость.
- Данные передаются в виде представлений ресурса (обычно JSON/XML).ксте онлайн
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
838
16:10
16.05.2025
imageИзображение не доступно для предпросмотра
📺 Уникальная база IT собеседований
456+ реальных собеседований на программиста, тестировщика, аналитика и прочие IT профы.
Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д.
🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!
803
11:10
16.05.2025
🤔 В каком случае использовать интерфейс, в каком абстрактный класс?
Выбор между интерфейсом и абстрактным классом в C# зависит от нескольких факторов, таких как потребности в наследовании, степень общности, возможность множественного наследования и необходимость реализации по умолчанию.
🚩Когда использовать интерфейсы
🟠Множественное наследование
Класс может реализовывать несколько интерфейсов, но наследоваться только от одного класса. Используйте интерфейсы, когда требуется множественное наследование.
public interface IDriveable
{
void Drive();
}
public interface IFlyable
{
void Fly();
}
public class FlyingCar : IDriveable, IFlyable
{
public void Drive() { /* Реализация вождения */ }
public void Fly() { /* Реализация полета */ }
}{}
🟠Общее поведение без реализации
Используйте интерфейсы, чтобы определить общий набор методов и свойств без предоставления какой-либо реализации. Это позволяет разным классам реализовать интерфейс по-своему.
public interface IShape
{
double GetArea();
}
public class Circle : IShape
{
public double Radius { get; set; }
public double GetArea() => Math.PI * Radius * Radius;
}
public class Rectangle : IShape
{
public double Width { get; set; }
public double Height { get; set; }
public double GetArea() => Width * Height;
}{}
🟠Гибкость и полиморфизм
Интерфейсы позволяют легко менять реализацию и обеспечивают гибкость в коде. Можно использовать интерфейсы для создания полиморфных коллекций или методов, которые работают с разными реализациями интерфейсов.
public void DrawShapes(IEnumerable<IShape> shapes)
{
foreach (var shape in shapes)
{
Console.WriteLine($"Area: {shape.GetArea()}");
}
}{}
🚩Когда использовать
🟠Частичная реализация
Используйте абстрактные классы, если вы хотите предоставить некоторую общую реализацию, которую могут использовать подклассы. Абстрактные классы могут содержать как абстрактные, так и не абстрактные методы.
public abstract class Animal
{
public abstract void MakeSound();
public void Sleep() => Console.WriteLine("Sleeping");
}
public class Dog : Animal
{
public override void MakeSound() => Console.WriteLine("Bark");
}{}
🟠Шаблонный метод
Абстрактные классы хорошо подходят для реализации паттерна "Шаблонный метод", где общий алгоритм реализован в абстрактном классе, а конкретные шаги определены в подклассах.
public abstract class Game
{
public void Play()
{
Initialize();
StartPlay();
EndPlay();
}
protected abstract void Initialize();
protected abstract void StartPlay();
protected abstract void EndPlay();
}
public class Football : Game
{
protected override void Initialize() => Console.WriteLine("Football Game Initialized");
protected override void StartPlay() => Console.WriteLine("Football Game Started");
protected override void EndPlay() => Console.WriteLine("Football Game Ended");
}{}
Ставь 👍 и забирай 📚 Базу знаний720
09:05
16.05.2025
🤔 Есть ли какие-то ограничения для типов данных по ключу?
Да:
- Ключ не должен быть null (в Dictionary).
- Ключ должен быть неизменяемым, т.е. после помещения в словарь не должен меняться его хеш или логическое состояние.
- Должен корректно реализовывать Equals() и GetHashCode(), иначе возможны ошибки поиска или дубликаты.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
911
16:10
15.05.2025
🤔 Про абстрактные классы, интерфейсы и в чем их разница и особенности?
В C# абстрактные классы и интерфейсы используются для проектирования системы через наследование и полиморфизм, позволяя описывать общую функциональность, которую будут реализовывать конкретные классы. Однако у них есть свои особенности, ограничения и сферы применения.
🚩Абстрактный класс
Абстрактный класс — это класс, который не может быть создан напрямую (нельзя создать объект этого класса). Он может содержать как абстрактные методы (без реализации), так и методы с реализацией.
public abstract class Animal
{
public abstract void MakeSound(); // Абстрактный метод
public void Sleep() // Метод с реализацией
{
Console.WriteLine("Sleeping...");
}
}{}
Пример
public class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Bark!");
}
}{}
Использование
Animal myDog = new Dog();
myDog.MakeSound(); // Вывод: Bark!
myDog.Sleep(); // Вывод: Sleeping...{}
🚩Интерфейс
Интерфейс — это контракт, который определяет только сигнатуры методов, свойств, событий и индексаторов. Реализацию этих членов должен предоставить класс, который реализует интерфейс.
public interface IMovable
{
void Move();
int Speed { get; set; }
}{}
Пример
public class Car : IMovable
{
public int Speed { get; set; }
public void Move()
{
Console.WriteLine($"Moving at speed: {Speed}");
}
}{}
Использование
IMovable myCar = new Car { Speed = 60 };
myCar.Move(); // Вывод: Moving at speed: 60{}
Ставь 👍 и забирай 📚 Базу знаний932
09:05
15.05.2025
close
Спецпредложения
Прогеры

Каналов
20
193K
lock_outline
CPV
lock_outline180 209.61 ₽₽
108 125.76 ₽₽
-40%
С этим каналом часто покупают
Отзывы канала
keyboard_arrow_down
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
5.0
1 отзыва за 6 мес.
Превосходно (100%) За последние 6 мес
p
**ystech.genesis@******.com
на сервисе с января 2023
22.11.202418:49
5
Оперативное размещение
Новинки в тематике
Лучшие в тематике
Статистика канала
Рейтинг
9.1
Оценка отзывов
5.0
Выполнено заявок
6
Подписчики:
5.2K
Просмотры на пост:
lock_outline
ER:
--%
Публикаций в день:
5.0
CPV
lock_outlineВыбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий