uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

C# | Вопросы собесов

C# | Вопросы собесов

Kanalga Telegram’da o‘tish

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

Ko'proq ko'rsatish
5 012
Obunachilar
Ma'lumot yo'q24 soatlar
+67 kun
+2430 kun
Postlar arxiv
🤔 Что такое IEnumerable? IEnumerable — это интерфейс в базовой библиотеке классов .NET Framework, который определяет один метод: GetEnumerator(). Этот метод возвращает объект IEnumerator, который позволяет перебирать элементы коллекции (например, массива или списка) один за другим. 🚩Зачем он нужен? Используется для создания универсального метода перебора данных, не зависящего от типа коллекции. Это означает, что любой тип данных, который реализует IEnumerable, можно перебирать с помощью цикла foreach в C#. Это упрощает работу с различными структурами данных, предоставляя единый механизм для итерации элементов. 🚩Как он используется? Когда вы реализуете интерфейс IEnumerable в своём классе, вы обязуете этот класс предоставлять метод GetEnumerator(), который возвращает IEnumerator. IEnumerator, в свою очередь, имеет методы для перехода к следующему элементу (MoveNext) и для получения текущего элемента (Current), а также метод Reset(), который возвращает перечислитель в начальное состояние.
using System;
using System.Collections;

public class DaysOfWeek : IEnumerable
{
    private string[] days = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };

    public IEnumerator GetEnumerator()
    {
        for (int index = 0; index < days.Length; index++)
        {
            // Yield each day of the week.
            yield return days[index];
        }
    }
}

public class Program
{
    public static void Main()
    {
        DaysOfWeek daysOfWeek = new DaysOfWeek();
        foreach (string day in daysOfWeek)
        {
            Console.WriteLine(day);
        }
    }
}
Ставь 👍 и забирай 📚 Базу знаний

АЙТИШНИКИ, ХВАТИТ сливать время на прилизанные новости и бесполезные курсы Проект «ИИнтеллигенция» стал главным каналом для т
АЙТИШНИКИ, ХВАТИТ сливать время на прилизанные новости и бесполезные курсы Проект «ИИнтеллигенция» стал главным каналом для тех, кто использует нейросети на уровне разработки, автоматизации и опенсорса, а не просто балуется в чатах. Здесь собирают только то, что реально экономит человеко-часы и работает в проде. 🎓 Готовые ИИ-сервисы, промпты и ИИ-агенты для автоматизации рутины 📚 Разборы полезных ИИ-инструментов, локальных LLM и опенсорс-репозиториев 🛠 Практические кейсы, гайды по деплою моделей и интеграции ИИ в пайплайны ⚡️ Технические ИТ-новости без маркетинговой воды и душных отчетов Обучение и прокачка в реальном времени: работа с API (Claude, GPT), локалки (Ollama, vLLM), автоматизация кода, опенсорс-утилиты, AI-агенты и др. Ценишь время и работаешь с ИИ, подпишись: @clucai

Не подавайте на банкротство! Новый способ списать долги По ФЗ №127 "О несостоятельности" гражданам разрешено списать долги Уз
Не подавайте на банкротство! Новый способ списать долги По ФЗ №127 "О несостоятельности" гражданам разрешено списать долги Узнать больше Банкротство влечет негативные последствия, в том числе ограничения на получение кредита и повторное банкротство в течение пяти лет. Предварительно обратитесь к своему кредитору и в МФЦ. #реклама тест-на-банкротство.рф О рекламодателе

🤔 В чём разница между Reference- и Value-type? Value-типы (значимые типы) хранятся в стеке. При передаче в методы они копируются, то есть метод работает с копией, а не с оригиналом. Примеры: int, float, bool, struct. Reference-типы (ссылочные типы) хранятся в куче, а в стеке содержится ссылка на объект. При передаче в метод передаётся ссылка, и метод работает с тем же объектом. Примеры: class, string, object, массивы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Домашний, полезный хлеб на закваске - Бесплатный курс ❤️Легендарный хлебный курс - Через неделю вы испечете свой домашний хле
Домашний, полезный хлеб на закваске - Бесплатный курс ❤️Легендарный хлебный курс - Через неделю вы испечете свой домашний хлеб на закваске! Это не теоретический мастер-класс, а практический флешмоб! Во время которого, вы действительно испечете свой хлеб на закваске! За неделю флешмоба вы: 1. Выведете закваску 2. Узнаете нюансы по ведению и подготовке закваски к замесу 3. Получите подробные инструкции для каждого этапа работы с закваской и тестом 4. Поймете, как выбирать муку для идеального хлеба 5. Узнаете, как зарабатывать на выпечке хлеба 6. С поддержкой Светланы сделаете свой первый замес Поймете, что дома можно легко самой испечь вкусный хлеб, даже если раньше вы этого не делали. Порадуете себя и своих близких вкусным, полезным хлебом на закваске ✨ ❤️Регистрируйтесь на курс и испеките ароматный, полезный хлеб Зарегистрироваться #реклама 16+ lesson.sshleb.ru О рекламодателе

🤔 Что такое делегаты и зачем они нужны? Делегаты — это типы, которые безопасно инкапсулируют методы, подобно указателям на функции в других языках программирования, но с проверкой типов во время компиляции. Могут ссылаться на метод, который принимает параметры и возвращает значение. Они используются для реализации обратных вызовов и событий, а также для определения пользовательских операций, которые могут быть выполнены методом, принимаемым в качестве параметра. 🚩Зачем они нужны? 🟠Обратные вызовы (Callbacks) Делегаты предоставляют механизм для передачи методов в качестве аргументов другим методам. Это полезно для реализации обратных вызовов, позволяя вызывать методы в ответ на определенные события или условия. 🟠События Являются основой системы событий. Они позволяют определять события и подписываться на них. Когда событие происходит, вызываются делегаты, связанные с этим событием, что позволяет реагировать на изменения или действия пользователя. 🟠Параметризация методами Позволяют создавать более гибкие и масштабируемые приложения, поскольку методы могут быть переданы и использованы динамически в различных контекстах. 🟠Асинхронное программирование Используются для асинхронного программирования, позволяя выполнять задачи в фоновом режиме, не блокируя основной поток приложения.
public delegate int Operation(int x, int y);

public class Calculator
{
    public int PerformOperation(int x, int y, Operation op)
    {
        return op(x, y);
    }
}

class Program
{
    static int Add(int x, int y)
    {
        return x + y;
    }

    static int Multiply(int x, int y)
    {
        return x * y;
    }

    static void Main()
    {
        Calculator calc = new Calculator();

        // Создание делегата для метода Add и вызов через метод PerformOperation
        Operation addOp = new Operation(Add);
        int result = calc.PerformOperation(5, 6, addOp);
        Console.WriteLine("Addition: " + result);

        // Создание делегата для метода Multiply и вызов через метод PerformOperation
        Operation mulOp = new Operation(Multiply);
        result = calc.PerformOperation(5, 6, mulOp);
        Console.WriteLine("Multiplication: " + result);
    }
}
Ставь 👍 и забирай 📚 Базу знаний

Получи грант до 1,35 млн руб. на обучение в магистратуре Хочешь развиваться в сфере ИТ и получить фундаментальные знания с пр
Получи грант до 1,35 млн руб. на обучение в магистратуре Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой? Поступай в магистратуру Центрального университета! — 4 офлайн программы по востребованным направлениям ИТ — 2 онлайн-программы: машинное обучение и продуктовый менеджмент — 550 грантов до 75% — Вечерние занятия и учеба по выходным — удобно совмещать с работой — Обучение по модели STEM-образования: на стыке науки, технологий и бизнеса — Возможность стажировок и трудоустройства в ведущих компаниях — Государственный диплом за 2 года Магистратура в Центральном университете — это современный подход к образованию, сильный преподавательский состав и актуальные кейсы от индустрии. Оставляй заявку на грант уже сейчас! Зарегистрироваться #реклама 16+ cu.ru О рекламодателе

🤔 Какие есть подходы в рамках EF Core? Entity Framework Core предлагает несколько стратегий работы с зависимостями и контекстом: - Scoped контекст — создаётся на время одного запроса. - Transient контекст — создаётся каждый раз заново. - Singleton — крайне редко используется, так как контекст не потокобезопасен. Также в EF Core есть несколько подходов к маппингу и конфигурации: - Fluent API (в OnModelCreating) - Аннотации атрибутов ([Key], [Required] и др.) - Разделение конфигураций на отдельные классы (EntityTypeConfiguration) Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Больше выгоды с подпиской Kaspersky Premium Купите подписку Kaspersky Premium сейчас и получите скидку до 28%, гарантированны
Больше выгоды с подпиской Kaspersky Premium Купите подписку Kaspersky Premium сейчас и получите скидку до 28%, гарантированные призы от наших партнёров, а также шанс выиграть путешествие! Узнать больше #реклама 16+ kaspersky.ru О рекламодателе

🤔 Что такое куки и где оно хранится в запросе? Это небольшие фрагменты данных, которые веб-сайты сохраняют на устройствах пользователей для хранения информации о сессии и отслеживания состояния. Куки используются для различных целей, таких как аутентификация пользователей, хранение настроек и предпочтений, а также отслеживание активности пользователей на сайте. 🚩Основные свойства 🟠Имя (Name) Уникальный идентификатор для каждого куки. 🟠Значение (Value) Данные, которые хранит куки. 🟠Домен (Domain) Домен, для которого куки действителен. 🟠Путь (Path) Путь на сервере, для которого куки действителен. 🟠Время истечения (Expiration/Max-Age) Дата или время, когда куки должен быть удален. 🟠Безопасность (Secure) Указывает, что куки должны передаваться только через HTTPS. 🟠HTTPOnly Указывает, что куки недоступен через JavaScript, только через HTTP(S) запросы. 🚩Где хранятся 🟠Установка куки с сервера (Set-Cookie) Сервер отправляет куки в ответе на запрос клиента с использованием заголовка Set-Cookie.
   HTTP/1.1 200 OK
   Set-Cookie: sessionId=abc123; Path=/; Expires=Wed, 09 Jun 2023 10:18:14 GMT
   Content-Type: text/html
   
🟠Отправка куки клиентом (Cookie) Браузер автоматически добавляет соответствующие куки в заголовок Cookie при каждом последующем запросе к серверу, для которого эти куки действительны.
   GET /dashboard HTTP/1.1
   Host: example.com
   Cookie: sessionId=abc123
   
🚩Пример использования Установка куки на сервере (пример на Node.js с использованием Express)
const express = require('express');
const app = express();

app.get('/', (req, res) => {
    // Устанавливаем куки
    res.cookie('sessionId', 'abc123', { 
        maxAge: 900000, 
        httpOnly: true 
    });
    res.send('Куки установлены');
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});
Доступ к куки на клиенте (пример на JavaScript)
// Установка куки
document.cookie = "username=JohnDoe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";

// Получение всех куки
let cookies = document.cookie;
console.log(cookies);
🚩Важные моменты 🟠Безопасность Куки с флагом Secure передаются только по HTTPS-соединениям. Куки с флагом HttpOnly недоступны через JavaScript, что помогает защитить их от XSS-атак. 🟠Размер и количество Обычно один куки не должен превышать 4KB, и на одном домене может быть установлено не более 20-30 куки. 🟠Конфиденциальность Куки могут содержать чувствительные данные, поэтому важно защищать их и использовать шифрование, если необходимо. Ставь 👍 и забирай 📚 Базу знаний

🤔 Чем отличается IQueryable от IEnumerable? `IEnumerable` используется для перебора коллекции в памяти и поддерживает ленивую загрузку данных. `IQueryable` позволяет работать с данными на уровне источника данных, поддерживая отложенное выполнение запросов и возможность составления SQL-запросов для баз данных. `IQueryable` чаще используется в LINQ для работы с базами данных, а `IEnumerable` — для работы с коллекциями, уже загруженными в память. `IQueryable` может оптимизировать запросы, выполняя их на сервере базы данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Получите 400 рублей на счет мобильного телефона Выберите Яндекс Поиск в настройках браузера, ищите в нём — и они ваши! Узнать больше #реклама 16+ portal.yandex.ru О рекламодателе

🤔 Что такое предикат? Это делегат, представляющий метод, который принимает один или несколько аргументов и возвращает логическое значение (true или false). Предикаты часто используются для фильтрации коллекций, поиска элементов и других операций, связанных с условными проверками. 🚩Особенности 🟠Тип делегата В C# предикат представлен делегатом Predicate<T>, который принимает один аргумент типа T и возвращает bool. 🟠Использование Предикаты обычно используются в методах стандартных коллекций, таких как List<T>, для поиска, удаления и фильтрации элементов. 🚩Пример использования предиката Определение предиката
public static bool IsEven(int number)
{
    return number % 2 == 0;
}
Использование предиката с методом коллекции
using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

        // Использование предиката для поиска первого четного числа
        int firstEven = numbers.Find(IsEven);
        Console.WriteLine("First even number: " + firstEven);

        // Использование предиката для удаления всех четных чисел
        numbers.RemoveAll(IsEven);
        Console.WriteLine("Numbers after removing evens: " + string.Join(", ", numbers));
    }

    public static bool IsEven(int number)
    {
        return number % 2 == 0;
    }
}
🚩Лямбда-выражения как предикаты Лямбда-выражения часто используются для определения предикатов непосредственно в месте вызова метода. Это делает код более компактным и удобочитаемым. Пример использования лямбда-выражений
using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

        // Использование лямбда-выражения для поиска первого четного числа
        int firstEven = numbers.Find(n => n % 2 == 0);
        Console.WriteLine("First even number: " + firstEven);

        // Использование лямбда-выражения для удаления всех четных чисел
        numbers.RemoveAll(n => n % 2 == 0);
        Console.WriteLine("Numbers after removing evens: " + string.Join(", ", numbers));
    }
}
🚩Сценарии использования предикатов 🟠Фильтрация коллекций Предикаты используются для определения условий фильтрации элементов в коллекциях.
List<int> evenNumbers = numbers.FindAll(IsEven);   
🟠Поиск элементов Предикаты помогают находить элементы, соответствующие определенному условию.
int firstEven = numbers.Find(IsEven);   
🟠Удаление элементов Предикаты используются для удаления элементов, соответствующих определенному условию.
numbers.RemoveAll(IsEven);
Ставь 👍 и забирай 📚 Базу знаний

Освойте русский сад раньше большинства коллег Заказчики всё чаще просят создать сад с характером, атмосферой и национальной и
Освойте русский сад раньше большинства коллег Заказчики всё чаще просят создать сад с характером, атмосферой и национальной идентичностью. Но что такое современный русский сад на практике? Какие приемы делают его узнаваемым и как проектировать такие пространства без стилизации и штампов? 📅9 июля в 17:00 мск Школа ВИД проведет бесплатный вебинар «Русский сад». Разберем: • почему русский сад стал одним из главных трендов; • философию и ключевые особенности стиля; • пошаговый подход к проектированию; • приемы и нюансы, которые создают атмосферу русского сада; • где получить знания для создания проектов для себя и заказчиков. ✅ Бесплатная регистрация. Зарегистрироваться #реклама 16+ vebinar-school-vid.tilda.ws О рекламодателе

🤔 Что такое unsafe? Используется для объявления небезопасного контекста кода, который позволяет выполнять низкоуровневые операции, такие как манипуляции с указателями. Эти операции обычно не разрешены в безопасном управляемом коде, но могут быть необходимы для взаимодействия с неуправляемым кодом, оптимизации производительности или доступа к определенным системным ресурсам. 🚩Характеристики 🟠Объявление небезопасного контекста Чтобы использовать указатели и выполнять небезопасные операции, нужно объявить метод, блок кода или тип как unsafe.
unsafe void UnsafeMethod()
{
    int a = 10;
    int* p = &a; // Использование указателя
    Console.WriteLine(*p); // Разыменование указателя
}
🟠Компиляция с поддержкой `unsafe` Для компиляции кода с unsafe необходимо включить поддержку небезопасного кода в настройках проекта. В Visual Studio это делается через свойства проекта: 1⃣Откройте свойства проекта. 2⃣Перейдите на вкладку "Сборка". 3⃣Установите флажок "Разрешить небезопасный код". 🟠Использование указателей Указатели позволяют напрямую работать с адресами памяти, что может быть полезно для некоторых оптимизаций или взаимодействия с низкоуровневым кодом, написанным на C или C++.
unsafe void PointerExample()
{
    int a = 5;
    int* p = &a; // p указывает на адрес переменной a
    Console.WriteLine((int)p); // Вывод адреса переменной a
    Console.WriteLine(*p); // Вывод значения переменной a через указатель
}
🟠Небезопасные структуры Вы можете объявлять структуры с указателями и использовать их в небезопасном контексте.
unsafe struct UnsafeStruct
{
    public int* Pointer;
}
🟠Стековые указатели (stackalloc) stackalloc позволяет выделять память в стеке для массива в небезопасном контексте. Это может быть быстрее, чем выделение памяти в куче.
unsafe void StackAllocExample()
{
    int* array = stackalloc int[10]; // Выделение массива из 10 целых чисел в стеке
    for (int i = 0; i < 10; i++)
    {
        array[i] = i;
    }
}
🟠Взаимодействие с неуправляемым кодом Небезопасный код часто используется для взаимодействия с API, написанными на других языках, такими как C или C++.
[DllImport("user32.dll")]
extern static unsafe int MessageBox(IntPtr hWnd, char* text, char* caption, int options);

unsafe void CallUnmanagedCode()
{
    char* text = "Hello, World!";
    char* caption = "My Message Box";
    MessageBox(IntPtr.Zero, text, caption, 0);
}
🚩Плюсы ➕Производительность Позволяет выполнять высокоэффективные операции с памятью. ➕Взаимодействие с неуправляемым кодом Необходим для вызова функций из библиотек, написанных на других языках. ➕Низкоуровневый контроль Предоставляет возможность прямого управления памятью и аппаратными ресурсами. Ставь 👍 и забирай 📚 Базу знаний

Нужны 7 желающих для работы с искусственным интеллектом. Требования: 18-45 лет Работа из дома. График свободный. Пришло задан
Нужны 7 желающих для работы с искусственным интеллектом. Требования: 18-45 лет Работа из дома. График свободный. Пришло задание — изучили — выполнили — получили свои деньги. Деньги вы получаете в зависимости от сложности задания. Например: За задание могут платить 500-10.000 рублей. 500 рублей — это около 5-30 минут. 10 000 руб. это 5-6 часов. Работа может быть разной: Оживить фото, создать видео, реставрировать старое фото и т.д. 💰 В среднем новичок получает до 150.000 руб в месяц. А опытный может и 300-500т. Мы обучим вас сами: — 3 дня уроков по 30 минут — Домашки с проверкой и оплатой бонусами — Платим 10 тыс за каждую выполненную домашку ⚡ Набор заканчивается завтра. Для регистрации жмите кнопку "Зарегистрироваться": Зарегистрироваться #реклама 16+ course.neurogansta.ru О рекламодателе

🤔 Какая разница между private и protected методами? - private — доступен только внутри текущего класса. - protected — доступен внутри текущего класса и его наследников. private обеспечивает максимальную инкапсуляцию, а protected позволяет наследникам переопределять поведение или использовать базовые методы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Можно ли передать строку в lock? Можно, но не рекомендуется. Строки могут быть разделяемыми между разными частями программы, даже если они написаны одинаково. Это может привести к неожиданным блокировкам. Лучше использовать уникальные объекты, специально созданные для блокировки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний