C# | Вопросы собесов
Kanalga Telegram’da o‘tish
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Ko'proq ko'rsatish5 012
Obunachilar
Ma'lumot yo'q24 soatlar
+67 kun
+2430 kun
Postlar arxiv
5 013
🤔 Что такое медиатор?
Это паттерн проектирования поведенческих шаблонов, который позволяет уменьшить связанность между объектами, обеспечивая взаимодействие через центральный объект-посредник. Медиатор упрощает коммуникацию между компонентами системы, делая ее более модульной и легкой для сопровождения.
🚩Примеры использования
1⃣Определение интерфейса медиатора
public interface IMediator
{
void Notify(object sender, string ev);
}
2⃣Реализация медиатора
public class DialogMediator : IMediator
{
private Button _button;
private TextBox _textBox;
public DialogMediator(Button button, TextBox textBox)
{
_button = button;
_button.SetMediator(this);
_textBox = textBox;
_textBox.SetMediator(this);
}
public void Notify(object sender, string ev)
{
if (ev == "ButtonClick")
{
_textBox.Clear();
}
else if (ev == "TextBoxEnter")
{
_button.SetEnabled(true);
}
}
}
3⃣Компоненты, взаимодействующие через медиатора
public class Button
{
private IMediator _mediator;
public void SetMediator(IMediator mediator)
{
_mediator = mediator;
}
public void Click()
{
Console.WriteLine("Button clicked");
_mediator.Notify(this, "ButtonClick");
}
public void SetEnabled(bool enabled)
{
Console.WriteLine($"Button is {(enabled ? "enabled" : "disabled")}");
}
}
public class TextBox
{
private IMediator _mediator;
public void SetMediator(IMediator mediator)
{
_mediator = mediator;
}
public void EnterText()
{
Console.WriteLine("Text entered");
_mediator.Notify(this, "TextBoxEnter");
}
public void Clear()
{
Console.WriteLine("TextBox cleared");
}
}
4⃣Использование медиатора в приложении
var button = new Button();
var textBox = new TextBox();
var mediator = new DialogMediator(button, textBox);
textBox.EnterText(); // Ввод текста активирует кнопку
button.Click(); // Нажатие кнопки очищает текстовое поле
🚩Плюсы и минусы
➕Снижение связанности
Компоненты не взаимодействуют напрямую, а используют медиатор.
➕Упрощение поддержки
Вся логика взаимодействия сосредоточена в одном месте.
➕Повышение модульности
Легко добавлять новые компоненты или изменять существующие.
➖Усложнение медиатора
Медиатор может стать сложным, если в него добавляется много логики.
➖Единая точка отказа
Если медиатор выходит из строя, это может повлиять на всю систему.
Ставь 👍 и забирай 📚 Базу знаний5 013
Творческая профессия без опыта: шаг, меняющий многое
Нет художественного образования? Не знаешь, с чего начать? Думаешь «это не для меня» или «я уже опоздала»?
Все меняется с одного простого шага — нужно разрешить себе попробовать.
Именно поэтому я создала бесплатный курс для женщин, которым хочется перемен. Тех, кто ищет дело по душе, тянется к красоте и хочет попробовать что-то новое. Спокойно, без вложений, с поддержкой.
На бесплатном 14-дневном курсе по дизайну интерьера с нуля ты узнаешь:
— как выбирать правильные материалы;
— какие инструменты использовать при работе над проектами;
— секреты создания гармоничного пространства.
За две недели у тебя на руках будет готовый дизайн-проект реальной квартиры. И все это бесплатно.
Запишись на практический курс. И проверь, может, ты следующая, кто скажет: «я нашла себя»❤️
Зарегистрироваться
#реклама 16+
diskill-design.ru
О рекламодателе
5 013
🤔 Для чего нужен конструктор в объектах?
Конструктор:
- Это специальный метод, который автоматически вызывается при создании объекта;
- Он нужен для:
- Инициализации полей и свойств;
- Настройки зависимостей;
- Передачи параметров в момент создания объекта;
- Можно создавать перегрузки конструкторов с разными наборами параметров.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 013
Комфорт и безопасность с ночными трусиками Pampers
Скидка 20% в любимой категории на Яндекс Маркете
Узнать больше
#реклама
market.yandex.ru
О рекламодателе
5 013
🤔 Строки - значимый или ссылочный тип?
В C# строки (
string) являются ссылочным типом, но ведут себя как значимый тип из-за своей неизменяемости (immutability).
🚩`string` – это ссылочный тип
В C# все классы (class) – ссылочные типы, и string не исключение.
- Переменная string хранит ссылку на объект в памяти, а не сам текст.
- Две переменные могут ссылаться на один и тот же объект.
string str1 = "Hello";
string str2 = str1; // str2 теперь указывает на тот же объект, что и str1
Console.WriteLine(object.ReferenceEquals(str1, str2)); // True
🚩`string` – неизменяемый тип (Immutable)
Хотя string – ссылочный тип, каждое изменение строки создаёт новый объект в памяти, а не модифицирует существующий.
string str = "Hello";
str += " World"; // Создаётся новый объект в памяти
🚩Почему `string` ведёт себя как значимый тип?
Неизменяемость (Immutability) – строка не меняется после создания.
Операции со строками создают новые объекты (как копирование значимых типов).
Сравнение строк по значению (==), а не по ссылке (как у ссылочных типов). 1210
string s1 = "hello";
string s2 = "hello";
Console.WriteLine(s1 == s2); // True (сравниваются значения, а не ссылки)
Ставь 👍 и забирай 📚 Базу знаний5 013
Java в 2026: куда движется язык - узнай на вебинаре!
Java в 2026: разберём тренды, ниши и реальные вакансии - поймёте, куда расти как разработчику. Запишитесь сейчас!
Узнать больше
#реклама 16+
otus.ru
О рекламодателе
5 013
🤔 В чем отличие Dispose и Finalize?
Dispose освобождает неуправляемые ресурсы явно, обычно через реализацию интерфейса IDisposable. Finalize вызывается сборщиком мусора автоматически для очистки перед удалением объекта, но менее предсказуем. Для надёжного освобождения ресурсов рекомендуется использовать Dispose.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 013
МТС Линк. Всё для коммуникации в команде
💻Платформа для общения, работы и обучения онлайн с поддержкой ИИ
Встречи, чаты и звонки в одном приложении
✅МТС Линк доступен в AppStore. Берите работу с собой и оставайтесь на связи с коллегами в любое время
Зарегистрироваться
#реклама 16+
mts-link.ru
О рекламодателе
5 013
🤔 Что такое post?
post чаще всего ассоциируется с HTTP POST-запросами, которые используются для отправки данных на сервер. Это один из основных методов HTTP-протокола наряду с GET, PUT, DELETE и другими.
🚩Основные понятия
🟠HTTP POST-запрос
Метод HTTP, используемый для отправки данных на сервер. Обычно применяется для создания новых ресурсов или передачи данных, которые могут изменять состояние сервера.
🟠Отправка данных
Данные могут быть отправлены в теле запроса в различных форматах, таких как JSON, XML или обычный текст.
🟠Использование в веб-приложениях
POST-запросы широко используются в веб-приложениях для передачи данных от клиента к серверу, например, при отправке формы, загрузке файлов или выполнении AJAX-запросов.
🚩Пример использования HTTP POST-запроса
Для выполнения HTTP POST-запроса в C# часто используется класс HttpClient, который предоставляет удобные методы для взаимодействия с веб-сервисами.
🚩Пример отправки JSON-данных
1⃣Настройка проекта
Убедитесь, что в вашем проекте установлен пакет System.Net.Http (обычно он включен по умолчанию в .NET Core проектах).
2⃣Отправка POST-запроса
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Создаем HttpClient
using (HttpClient client = new HttpClient())
{
// URL-адрес, на который отправляется запрос
string url = "https://example.com/api/resource";
// Данные для отправки
var data = new
{
Name = "John Doe",
Age = 30
};
// Сериализуем данные в JSON
string jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(data);
// Создаем содержимое запроса
StringContent content = new StringContent(jsonData, Encoding.UTF8, "application/json");
// Отправляем POST-запрос
HttpResponseMessage response = await client.PostAsync(url, content);
// Проверяем успешность ответа
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Запрос выполнен успешно.");
}
else
{
Console.WriteLine($"Ошибка: {response.StatusCode}");
}
}
}
}
Ставь 👍 и забирай 📚 Базу знаний5 013
Зарабатывайте на Яндекс Браузере
Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайтов...
Подать заявку
#реклама 0+
partner.browser.yandex.ru
О рекламодателе
5 013
🤔 Что такое .NET Standard?
Это спецификация API, поддерживаемых различными реализациями платформы .NET, такими как .NET Framework, .NET Core и Xamarin.
1. Обеспечивает совместимость между этими реализациями, позволяя разрабатывать общий код.
2. Разработчики могут писать библиотеки, работающие на разных версиях и платформах .NET.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 013
Ищу желающих заполнять карточки товаров на ВБ!
Работа полностью на удаленке с зп 150 000 рублей в месяц.💰
Без опыта, нужен только телефон, занятость 3-6 часов в день
Всему обучат на бесплатном курсе и после возьму на работу:
✅ 3 дня уроков по 30 минут
✅ Домашки с проверкой и оплатой бонусами
✅ Плачу 10 тыс за каждую выполненную домашку
Все кто пройдет курс, получат сертификат от школы с образовательной лицензией.
Набор заканчивается завтра
👍 Для регистрации жмите кнопку "Зарегистрироваться"
Зарегистрироваться
#реклама 16+
malkinadana.ru
О рекламодателе
5 013
🤔 Как сделать связь один к одному?
В реляционных базах данных связь "один к одному" (one-to-one) подразумевает, что каждая запись в одной таблице соответствует ровно одной записи в другой таблице. Для реализации связи "один к одному" в SQL можно использовать несколько подходов, в зависимости от требований и архитектуры базы данных.
🚩Основные подходы
🟠Уникальные внешние ключи
Используйте внешний ключ в одной таблице, который ссылается на первичный ключ другой таблицы, и сделайте этот внешний ключ уникальным.
🟠Одинаковые первичные ключи
Используйте один и тот же первичный ключ в обеих таблицах, где одна таблица содержит внешний ключ, который является также первичным ключом.
🚩Уникальные внешние ключи
Таблицы
Users (пользователи)
UserId (Primary Key)
UserName
Profiles (профили)
ProfileId (Primary Key)
UserId (Foreign Key, Unique)
ProfileData
Создание таблиц
CREATE TABLE Users (
UserId INT PRIMARY KEY,
UserName VARCHAR(100)
);
CREATE TABLE Profiles (
ProfileId INT PRIMARY KEY,
UserId INT UNIQUE,
ProfileData VARCHAR(255),
FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
Вставка данных
INSERT INTO Users (UserId, UserName) VALUES (1, 'John Doe');
INSERT INTO Profiles (ProfileId, UserId, ProfileData) VALUES (1, 1, 'Profile data for John Doe');
Запрос данных
SELECT Users.UserName, Profiles.ProfileData
FROM Users
JOIN Profiles ON Users.UserId = Profiles.UserId;
🚩Одинаковые первичные ключи
Таблицы
Users (пользователи)
UserId (Primary Key)
UserName
Profiles (профили)
UserId (Primary Key, Foreign Key)
ProfileData
Создание таблиц
CREATE TABLE Users (
UserId INT PRIMARY KEY,
UserName VARCHAR(100)
);
CREATE TABLE Profiles (
UserId INT PRIMARY KEY,
ProfileData VARCHAR(255),
FOREIGN KEY (UserId) REFERENCES Users(UserId)
);
Вставка данных
INSERT INTO Users (UserId, UserName) VALUES (1, 'John Doe');
INSERT INTO Profiles (UserId, ProfileData) VALUES (1, 'Profile data for John Doe');
Запрос данных
SELECT Users.UserName, Profiles.ProfileData
FROM Users
JOIN Profiles ON Users.UserId = Profiles.UserId;
🚩Плюсы и минусы
🟠Уникальные внешние ключи
➕Четкая семантика внешнего ключа.
➕Легкость добавления дополнительных данных в связанную таблицу.
➖Необходимо следить за уникальностью внешнего ключа.
🟠Одинаковые первичные ключи
➕Единый идентификатор для связанных данных.
➕Простота конструкции при обеспечении связи.
➖Необходимость синхронизации идентификаторов в обеих таблицах.
Ставь 👍 и забирай 📚 Базу знаний5 013
IT-магистратура ИТМО, МИФИ в партнёрстве с Яндексом
Освойте высокооплачиваемую IT-профессию. Актуальные программы ИТМО и МФТИ 2026 года, диплом гособразца, много практики от Яндекса. Гибкий график, обучение полностью онлайн, господдержка оплаты, отсрочка от армии
Узнать больше
#реклама 16+
practicum.yandex.ru
О рекламодателе
5 013
🤔 Что такое Singleton?
Singleton — это жизненный цикл зависимости, при котором:
- Экземпляр создаётся один раз за всё время жизни приложения.
- Все зависимости получают один и тот же объект.
Хорошо подходит для кэшей, конфигураций, логирования, и всего, что должно быть единым.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 013
Кешбэк 10% за рекламу в МАКС и Telegram через Директ
Инвестируйте в продвижение в Telegram, МАКС или на обеих площадках 100 000 ₽ и больше через Директ — вернём часть бюджета на следующие кампании. Для участия заполните форму: укажите, что продвигаете, на каком логине и куда прислать условия.
Акция действует с 1 июня по 31 августа.
Получить предложение
#реклама
yandex.ru
О рекламодателе
5 013
🤔 Как по ключу получить значение?
Для получения значения по ключу в словаре (
Dictionary<TKey, TValue>) используются методы и свойства, такие как индексатор [], метод TryGetValue, и метод ContainsKey.
🟠Индексатор `[]`
Индексатор позволяет получить значение по ключу напрямую. Если ключ отсутствует в словаре, будет выброшено исключение KeyNotFoundException.
var dictionary = new Dictionary<int, string>
{
{ 1, "One" },
{ 2, "Two" },
{ 3, "Three" }
};
try
{
string value = dictionary[2]; // Получение значения по ключу 2
Console.WriteLine(value); // Выведет "Two"
}
catch (KeyNotFoundException)
{
Console.WriteLine("Key not found");
}
🟠Метод `TryGetValue`
Метод TryGetValue позволяет безопасно получить значение по ключу. Он возвращает true, если ключ найден, и false, если ключ отсутствует. При этом значение записывается в выходной параметр.
var dictionary = new Dictionary<int, string>
{
{ 1, "One" },
{ 2, "Two" },
{ 3, "Three" }
};
if (dictionary.TryGetValue(2, out string value))
{
Console.WriteLine(value); // Выведет "Two"
}
else
{
Console.WriteLine("Key not found");
}
🟠Метод `ContainsKey`
Метод ContainsKey проверяет наличие ключа в словаре. Его можно использовать в сочетании с индексатором для получения значения.
var dictionary = new Dictionary<int, string>
{
{ 1, "One" },
{ 2, "Two" },
{ 3, "Three" }
};
if (dictionary.ContainsKey(2))
{
string value = dictionary[2];
Console.WriteLine(value); // Выведет "Two"
}
else
{
Console.WriteLine("Key not found");
}
Ставь 👍 и забирай 📚 Базу знаний5 013
Получи грант до 3,48 млн на обучение дизайну
Поступай на дизайн в Центральный университет с грантом.
Для учеников 10–11-х классов и СПО. Освой графический, UI/UX и продуктовый дизайн. Создавай визуальные концепты будущего.
На программе студенты получают фундаментальную базу, развивают прикладные навыки, приобретают опыт работы над реальными проектами, собирают портфолио и строят связи внутри дизайн-сообщества
Подать заявку
#реклама 16+
cu.ru
О рекламодателе
5 013
🤔 Что такое предикат?
Это делегат, представляющий метод, который принимает параметр и возвращает булево значение (true или false). Используется для фильтрации данных в LINQ или коллекциях.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
5 013
Кастомные ПО для WhatsMiner
Автоматическое обновление. Контроль доходности. + 50% разгон
Узнать больше
#реклама 16+
bixbit.tech
О рекламодателе
