C# | Вопросы собесов
رفتن به کانال در Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
نمایش بیشتر5 003
مشترکین
+124 ساعت
-77 روز
-130 روز
آرشیو پست ها
5 003
🤔 Какой из следующих делегатов в C# может ссылаться на метод, возвращающий значение и принимающий один параметр?
5 003
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
5 003
📌 Что такое put?
💬 Спрашивают в 22% собеседований
В C# и веб-программировании
PUT обычно относится к HTTP PUT-запросам, которые используются для обновления ресурсов на сервере. Это один из основных методов HTTP-протокола наряду с GET, POST, DELETE и другими.
🤔 Основные понятия
1️⃣ HTTP PUT-запрос: Метод HTTP, который используется для обновления существующего ресурса или создания ресурса, если он не существует. В отличие от POST, который обычно используется для создания новых ресурсов, PUT применяется для замены текущего состояния ресурса новым состоянием.
2️⃣ Идемпотентность: PUT-запросы идемпотентны, что означает, что многократное выполнение одного и того же запроса с одинаковыми данными приведет к одному и тому же результату. Это важно для надежности сетевых операций.
3️⃣ Отправка данных: Как и в случае с POST-запросами, данные могут быть отправлены в теле запроса в различных форматах, таких как JSON, XML или обычный текст.
🤔 Пример использования HTTP PUT-запроса в C#
Для выполнения HTTP PUT-запроса в C# часто используется класс HttpClient, который предоставляет удобные методы для взаимодействия с веб-сервисами.
🤔 Пример обновления ресурса с помощью PUT-запроса
1️⃣ Настройка проекта: Убедитесь, что в вашем проекте установлен пакет System.Net.Http (обычно он включен по умолчанию в .NET Core проектах).
2️⃣ Отправка PUT-запроса:
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/1"; // Предполагается, что ресурс с ID 1 уже существует
// Данные для отправки
var data = new
{
Name = "John Doe",
Age = 31 // Обновляем возраст
};
// Сериализуем данные в JSON
string jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(data);
// Создаем содержимое запроса
StringContent content = new StringContent(jsonData, Encoding.UTF8, "application/json");
// Отправляем PUT-запрос
HttpResponseMessage response = await client.PutAsync(url, content);
// Проверяем успешность ответа
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Ресурс успешно обновлен.");
}
else
{
Console.WriteLine($"Ошибка: {response.StatusCode}");
}
}
}
}
🤔 Объяснение кода
1️⃣ Создание HttpClient: Объект HttpClient используется для отправки HTTP-запросов и получения HTTP-ответов от ресурса, определенного по URI.
2️⃣ Определение URL: URL-адрес, на который будет отправлен PUT-запрос. В данном случае предполагается, что ресурс с ID 1 уже существует.
3️⃣ Создание данных: Объект с данными, которые мы хотим отправить на сервер для обновления ресурса. В данном случае это анонимный объект с обновленным именем и возрастом.
4️⃣ Сериализация данных: Преобразование объекта в JSON-строку с использованием JsonConvert.SerializeObject.
5️⃣ Создание содержимого запроса: Объект StringContent, который содержит сериализованные данные, кодировку и тип содержимого.
6️⃣ Отправка PUT-запроса: Метод PutAsync отправляет PUT-запрос на указанный URL с указанным содержимым.
🤔 Краткий ответ
HTTP PUT-запрос используется для обновления существующего ресурса или создания ресурса, если он не существует. В C# для выполнения PUT-запросов часто используется класс HttpClient, который позволяет отправлять данные в формате JSON или других форматах. PUT-запросы идемпотентны, что означает, что многократное выполнение одного и того же запроса приведет к одному и тому же результату.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 003
🧑💻 Если твой английский позволяет ответить только на вопрос "Do you speak English", то с этим нужно что-то делать, будучи программистом.
🫤 Ты в курсе, что ...
- говорят по-английски — 20% из всех людей.
- Большое кол-во IT документации написано на английском.
Хочешь понимать код лучше? Изучи язык, который используется в его основе.
📕 На нашем канале ты постепенно будешь набираться опыта, в этом тебе помогут:
- Тесты для изучения английского: проверьте свои знания на практике.
- Английский через мемы: учите язык весело и с интересом.
- Шпаргалки для повторения: закрепите знания быстро и эффективно.
- Английский сленг программиста: станьте настоящим профи в коммуникации.
🔥 Маленький шаг в изучении иностранного откроет перед тобой большие возможности будущего специалиста и значительно повысит твое зп.
🌸 Подпишись, do it!
5 003
Партнёрская программа рекрутинга в Яндекс Еду
Станьте партнёром Яндекс Еды по привлечению курьеров и получите кучу преимуществ:
💰Платим до 25 000 ₽ за успешного кандидата
📞Поддержка на всех этапах
📅Свободное расписание
📊Удобные инструменты для работы
Приводите новых курьеров и получайте до 187 000 ₽ в месяц!
Зарегистрироваться
#реклама
eda.yandex.ru
О рекламодателе
5 003
🤔 Какой из следующих типов C# поддерживает арифметические операции с указателями?
5 003
👩💻 Есть опыт в проге, но не растет зп? Может нужно найти крутой оффер?
🗿 Большинство IT специалистов работает за копейки и даже не осознает этого. Лучший способ понять рынок вакансий - стать его частью и начать анализировать.
👍 Предела совершенству нет, что нельзя сказать про зп в рамках одной компании. Подпишись на Мидл работает и повышай свой капитал.
5 003
📌 Что такое post?
💬 Спрашивают в 22% собеседований
В C#
post чаще всего ассоциируется с HTTP POST-запросами, которые используются для отправки данных на сервер. Это один из основных методов HTTP-протокола наряду с GET, PUT, DELETE и другими.
🤔 Основные понятия
1️⃣ HTTP POST-запрос: Метод HTTP, используемый для отправки данных на сервер. Обычно применяется для создания новых ресурсов или передачи данных, которые могут изменять состояние сервера.
2️⃣ Отправка данных: Данные могут быть отправлены в теле запроса в различных форматах, таких как JSON, XML или обычный текст.
3️⃣ Использование в веб-приложениях: POST-запросы широко используются в веб-приложениях для передачи данных от клиента к серверу, например, при отправке формы, загрузке файлов или выполнении AJAX-запросов.
🤔 Пример использования HTTP POST-запроса в C#
Для выполнения 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}");
}
}
}
}
🤔 Объяснение кода
1️⃣ Создание HttpClient: Объект HttpClient используется для отправки HTTP-запросов и получения HTTP-ответов от ресурса, определенного по URI.
2️⃣ Определение URL: URL-адрес, на который будет отправлен POST-запрос.
3️⃣ Создание данных: Объект с данными, которые мы хотим отправить на сервер. В данном случае это анонимный объект с именем и возрастом.
4️⃣ Сериализация данных: Преобразование объекта в JSON-строку с использованием JsonConvert.SerializeObject.
5️⃣ Создание содержимого запроса: Объект StringContent, который содержит сериализованные данные, кодировку и тип содержимого.
6️⃣ Отправка POST-запроса: Метод PostAsync отправляет POST-запрос на указанный URL с указанным содержимым.
7️⃣ Проверка ответа: Проверка успешности ответа с использованием свойства IsSuccessStatusCode.
🤔 Краткий ответ
HTTP POST-запрос используется для отправки данных на сервер, обычно для создания новых ресурсов. В C# для выполнения POST-запросов часто используется класс HttpClient, который позволяет отправлять данные в формате JSON или других форматах.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 003
Не знаешь куда и на кого поступить?
Ждём тебя в МосАП!
Московская Академия Предринимательства - это:
- 38 программ обучения
- Государственный диплом
- Возможность совмещать учебу и работу
- Поступление по программе «Два диплома»
Сделай первый шаг к своему успеху — и мы поддержим тебя на каждом этапе!
Оставь заявку.
Узнать больше
#реклама
mosap.ru
О рекламодателе
5 003
🤔 Какое из следующих ключевых слов в C# используется для объявления метода, который не имеет реализации в базовом классе и должен быть переопределён в производных классах?
5 003
📌 В чем разница между списком и массивом?
💬 Спрашивают в 22% собеседований
В C# списки (List) и массивы (Array) являются двумя основными типами коллекций, но они имеют различия в своих свойствах, возможностях и сценариях использования. Рассмотрим основные различия между ними.
🤔 Массивы (Array)
1️⃣ Размер: Массивы имеют фиксированный размер, который необходимо указать при создании. Размер массива не может быть изменен после его создания.
int[] numbers = new int[5]; // Массив из 5 элементов
2️⃣ Тип данных: Массивы являются типобезопасными, что означает, что все элементы массива должны быть одного типа. string[] words = new string[] { "apple", "banana", "cherry" };
3️⃣ Быстродействие: Массивы обеспечивают очень быстрый доступ к элементам по индексу, так как они хранятся в непрерывном блоке памяти. int firstNumber = numbers[0]; // Быстрый доступ по индексу
4️⃣ Методы и свойства: Массивы имеют ограниченный набор методов и свойств. В основном это методы для работы с элементами, такие как Length. int length = numbers.Length; // Длина массива
🤔 Списки (List)
1️⃣ Размер: Списки имеют динамический размер, который автоматически изменяется по мере добавления или удаления элементов. List<int> numbersList = new List<int> { 1, 2, 3, 4, 5 };
numbersList.Add(6); // Добавление элемента увеличивает размер списка
2️⃣ Тип данных: Списки также являются типобезопасными и могут хранить элементы только одного типа. List<string> wordsList = new List<string> { "apple", "banana", "cherry" };
3️⃣ Быстродействие: Доступ к элементам списка по индексу также быстрый, но из-за динамической природы список может быть менее эффективен по памяти при частом изменении размера. int firstNumberInList = numbersList[0]; // Быстрый доступ по индексу
4️⃣ Методы и свойства: Списки обладают богатым набором методов и свойств, таких как Add, Remove, Find, Count и многие другие, что делает их более удобными для работы с динамическими данными. int count = numbersList.Count; // Количество элементов в списке
numbersList.Remove(3); // Удаление элемента
🤔 Основные различия
1️⃣ Размер: Массивы фиксированного размера, списки динамического размера.
2️⃣ Гибкость: Списки более гибкие и предоставляют больше методов для работы с элементами.
3️⃣ Производительность: Массивы могут быть более эффективны по памяти и быстрее при доступе к элементам, но менее гибкие в изменении размера.
🤔 Пример использования
Массив: int[] numbersArray = new int[] { 1, 2, 3, 4, 5 };
int firstElement = numbersArray[0];
numbersArray[2] = 10;
Console.WriteLine(numbersArray.Length);
Список: List<int> numbersList = new List<int> { 1, 2, 3, 4, 5 };
numbersList.Add(6);
int firstElementInList = numbersList[0];
numbersList[2] = 10;
Console.WriteLine(numbersList.Count);
numbersList.Remove(4);
🤔 Краткий ответ
Массивы имеют фиксированный размер и обеспечивают быстрый доступ к элементам, но менее гибкие. Списки имеют динамический размер и предоставляют больше методов для работы с элементами, но могут быть менее эффективны по памяти.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 003
🤬 Постоянные ошибки, как они надоели!
🤯 Планируя свои дела, мы забываем, что оборудование может подвести. Это может перекрыть все рабочие планы. Придется гуглить, смотреть видосы, звонить знакомым "Не встречалась ли тебе такая ошибка?"
🥵 Все это время и силы. Наша команда нашла этому решение - Битый код. Канал, который даст тебе базу в мире ошибок.
🍸 Стань тем человеком, к которому будут обращаться и про которого будут говорить "Он сможет помочь"
5 003
Чек-лист, как покупать выгодно:
✅ Подписываемся на канал «Скидки на Маркете».
✅ Ищем нужные товары с выгодой до 90%.
✅ Покупаем.
Поздравляем, вы хакнули эту систему.
Узнать больше
#реклама
О рекламодателе
5 003
🤔 Какой модификатор доступа в C# используется для обеспечения доступа к члену класса только внутри его текущего сборочного контекста?
5 003
Такси для бизнеса. Яндекс Go
Оптимизируйте свои расходы и повысьте эффективность бизнеса с Яндекс Go
Узнать больше
#реклама
business.go.yandex
О рекламодателе
5 003
📌 Что такое DI(инъекция зависимости)?
💬 Спрашивают в 22% собеседований
Dependency Injection (DI), или инъекция зависимости, — это шаблон проектирования, который позволяет объектам получить свои зависимости от внешних источников, а не создавать их самостоятельно. Этот подход улучшает тестируемость, расширяемость и поддерживаемость кода, делая его более гибким и модульным.
🤔 Основные концепции
1️⃣ Зависимость: Любой объект или класс, от которого зависит другой объект или класс. Например, если класс
A использует класс B для выполнения своих задач, то B является зависимостью для A.
2️⃣ Инъекция зависимости: Процесс предоставления зависимости объекту извне, обычно через конструктор, метод или свойство.
🤔 Преимущества DI
➕ Улучшенная тестируемость: Легко заменять реальные зависимости на моки или заглушки, что упрощает модульное тестирование.
➕ Ослабленная связность: Классы не жестко связаны с конкретными реализациями своих зависимостей, что упрощает их замену и изменение.
➕ Расширяемость и поддерживаемость: Позволяет легко добавлять новые функциональные возможности и изменять существующие зависимости.
🤔 Виды инъекций зависимости
1️⃣ Конструкторная инъекция: Зависимости передаются через параметры конструктора. public class Service
{
private readonly IRepository _repository;
public Service(IRepository repository)
{
_repository = repository;
}
public void DoWork()
{
_repository.Save();
}
}
2️⃣ Инъекция через свойства: Зависимости устанавливаются через свойства класса. public class Service
{
public IRepository Repository { get; set; }
public void DoWork()
{
Repository.Save();
}
}
3️⃣ Инъекция через методы: Зависимости передаются через параметры метода. public class Service
{
private IRepository _repository;
public void SetRepository(IRepository repository)
{
_repository = repository;
}
public void DoWork()
{
_repository.Save();
}
}
🤔 Использование DI с IoC-контейнерами
IoC-контейнеры (контейнеры инверсии управления) управляют созданием и жизненным циклом зависимостей, а также автоматизируют процесс их инъекции. Пример использования популярного IoC-контейнера Autofac:
1️⃣ Установка Autofac: Добавляем пакет Autofac через NuGet Package Manager.
2️⃣ Настройка контейнера и регистрация зависимостей: using Autofac;
var builder = new ContainerBuilder();
builder.RegisterType<Repository>().As<IRepository>();
builder.RegisterType<Service>().As<IService>();
var container = builder.Build();
3️⃣ Разрешение зависимостей и использование сервиса: using (var scope = container.BeginLifetimeScope())
{
var service = scope.Resolve<IService>();
service.DoWork();
}
🤔 Краткий ответ
Dependency Injection (DI) — это метод предоставления зависимостей объекту извне, что делает код более гибким, тестируемым и поддерживаемым. DI может осуществляться через конструкторы, свойства или методы, а IoC-контейнеры автоматизируют процесс управления зависимостями.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 003
Новый AI, который составляет протокол вместо человека
Таймлист за считанные минуты предоставляет готовый протокол и конспект совещания.
1. Расшифрует речь
2. Определит спикеров
3. Составит полную стенограмму
4. Напишет краткий конспект
5. Распределит задачи
Не выходя из сервиса, вы получаете полностью готовую расшифровку и протокол обсуждения, который готов к скачиванию или копированию в удобном для Вас формате в один клик.
Попробуйте бесплатно и запишитесь на демо-встречу.
Опробовав Таймлист вы удивитесь, как раньше обходились без него!
Попробовать
#реклама
timelist.ru
О рекламодателе
5 003
📌 Какие колекции знаешь?
💬 Спрашивают в 22% собеседований
В C# существует множество коллекций, которые предоставляются в стандартной библиотеке .NET. Они делятся на несколько категорий, каждая из которых предназначена для различных сценариев использования. Вот основные типы коллекций:
1️⃣ Коллекции общего назначения
➕ List<T>: Динамический массив, который автоматически изменяет свой размер по мере добавления элементов.
List<int> numbers = new List<int> { 1, 2, 3, 4 };
numbers.Add(5);
➕ Dictionary<TKey, TValue>: Коллекция пар ключ-значение. Обеспечивает быстрый доступ к значению по ключу. Dictionary<string, int> ages = new Dictionary<string, int>
{
{ "Alice", 30 },
{ "Bob", 25 }
};
int aliceAge = ages["Alice"];
➕ HashSet<T>: Коллекция уникальных элементов. Используется для проверки наличия элемента и предотвращения дублирования. HashSet<string> fruits = new HashSet<string> { "Apple", "Banana" };
fruits.Add("Apple"); // Не добавит дубликат
➕ Queue<T>: Очередь, работающая по принципу FIFO (First In, First Out). Queue<string> queue = new Queue<string>();
queue.Enqueue("first");
queue.Enqueue("second");
string item = queue.Dequeue(); // "first"
➕ Stack<T>: Стек, работающий по принципу LIFO (Last In, First Out). Stack<string> stack = new Stack<string>();
stack.Push("first");
stack.Push("second");
string item = stack.Pop(); // "second"
2️⃣ Специализированные коллекции
➕ LinkedList<T>: Двусвязный список, позволяющий быстро вставлять и удалять элементы. LinkedList<int> linkedList = new LinkedList<int>();
linkedList.AddLast(1);
linkedList.AddLast(2);
➕ SortedList<TKey, TValue>: Коллекция пар ключ-значение, отсортированная по ключам. SortedList<string, int> sortedList = new SortedList<string, int>
{
{ "Alice", 30 },
{ "Bob", 25 }
};
➕ SortedDictionary<TKey, TValue>: Похож на SortedList, но использует бинарное дерево для хранения элементов. SortedDictionary<string, int> sortedDict = new SortedDictionary<string, int>
{
{ "Alice", 30 },
{ "Bob", 25 }
};
➕ SortedSet<T>: Отсортированное множество уникальных элементов. SortedSet<int> sortedSet = new SortedSet<int> { 3, 1, 2 };
3️⃣ Коллекции для параллельного программирования
➕ ConcurrentDictionary<TKey, TValue>: Параллельная версия Dictionary, предназначенная для безопасного использования в многопоточных приложениях. ConcurrentDictionary<string, int> concurrentDict = new ConcurrentDictionary<string, int>();
concurrentDict.TryAdd("Alice", 30);
➕ ConcurrentQueue<T>: Параллельная версия Queue. ConcurrentQueue<string> concurrentQueue = new ConcurrentQueue<string>();
concurrentQueue.Enqueue("first");
➕ ConcurrentStack<T>: Параллельная версия Stack. ConcurrentStack<string> concurrentStack = new ConcurrentStack<string>();
concurrentStack.Push("first");
➕ BlockingCollection<T>: Коллекция, поддерживающая операции добавления и извлечения с блокировкой и ограничением по емкости. BlockingCollection<int> blockingCollection = new BlockingCollection<int>(5);
blockingCollection.Add(1);
🤔 Краткий ответ
В C# есть множество коллекций для различных целей, включая List, Dictionary, HashSet, Queue, Stack, специализированные коллекции, такие как LinkedList, SortedList, а также коллекции для параллельного программирования, такие как ConcurrentDictionary и BlockingCollection.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых5 003
На эти IT-стажировки берут без опыта
В канале собраны самые свежие предложения от крупнейших российских компаний: VK, Сбера, Яндекса и многих других.
Теперь можно не откладывать начало карьеры в IT, ведь здесь вы найдете:
— стажировки для молодых специалистов;
— анонсы хакатонов, которые будут выгодно смотреться в резюме;
— карьерные и образовательные ивенты для прокачки hard и soft skills.
Подписаться
#реклама
О рекламодателе
