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

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

Відкрити в Telegram
5 048
Підписники
-124 години
-177 днів
-2630 день
Архів дописів
Начните обучение в магистратуре в Центральном университете уже на 3-м курсе бакалавриата! Центральный университет — современн
Начните обучение в магистратуре в Центральном университете уже на 3-м курсе бакалавриата! Центральный университет — современный вуз, созданный при поддержке ведущих компаний России: Т-Банка, Авито и других. Учебу реально совместить с последними курсами бакалавриата или действующей работой. Обучение занимает 20 часов в неделю в вечернее время в первый год, а занятия проводят в центре Москвы профессоры из МГУ, МФТИ, РЭШ и практики из индустрии. Обучение в университете построено по принципам ИТ-компаний, со средой, способствующей росту и развитию. У каждого студента будет: - личный ментор по траектории обучения; - доступ к карьерному центру с коучами и консультантами; - опыт работы в проектах 30+ компаний-партнеров уже во время обучения; - диплом гособразца. Участвуйте в онлайн-отборе, чтобы выиграть грант на обучение до 1,2 млн рублей. Больше подробностей про университет и конкурс грантов по ссылке! erid:2Vtzqvtn12b Реклама, АНО ВО «Центральный университет», ИНН 7743418023

📌 Какие есть виды полиморфизмов? 💬 Спрашивают в 22% собеседований Полиморфизм в объектно-ориентированном программировании (ООП) — это способность объектов разного типа обрабатывать данные через единый интерфейс. В C# существует несколько видов полиморфизма, которые можно разделить на две основные категории: компиляторный (статический) полиморфизм и временный (динамический) полиморфизм. Рассмотрим каждый из них более подробно. 🤔 Компиляторный (статический) полиморфизм Этот тип полиморфизма определяется на этапе компиляции. К нему относятся: 1️⃣ Перегрузка методов (Method Overloading): ➕ Это возможность создавать несколько методов с одним и тем же именем, но с разными параметрами (типами и/или количеством параметров). ➕ Пример:
     class MathOperations
     {
         public int Add(int a, int b)
         {
             return a + b;
         }

         public double Add(double a, double b)
         {
             return a + b;
         }
     }
     
2️⃣ Перегрузка операторов (Operator Overloading): ➕ Позволяет определять поведение стандартных операторов (например, +, -, *, /) для пользовательских типов (классов или структур). ➕ Пример:
     class Complex
     {
         public double Real { get; set; }
         public double Imaginary { get; set; }

         public static Complex operator +(Complex c1, Complex c2)
         {
             return new Complex { Real = c1.Real + c2.Real, Imaginary = c1.Imaginary + c2.Imaginary };
         }
     }
     
🤔 Временный (динамический) полиморфизм Этот тип полиморфизма определяется на этапе выполнения программы. К нему относятся: 1️⃣ Переопределение методов (Method Overriding): ➕ Позволяет подклассу предоставлять специфическую реализацию метода, который уже определен в его суперклассе. ➕ Использует ключевые слова virtual в базовом классе и override в производном классе. ➕ Пример:
     class Animal
     {
         public virtual void MakeSound()
         {
             Console.WriteLine("Animal sound");
         }
     }

     class Dog : Animal
     {
         public override void MakeSound()
         {
             Console.WriteLine("Bark");
         }
     }
     
2️⃣ Интерфейсы (Interfaces): ➕ Позволяют разным классам реализовывать одно и то же поведение через контракт (интерфейс). ➕ Пример:
     interface IShape
     {
         void Draw();
     }

     class Circle : IShape
     {
         public void Draw()
         {
             Console.WriteLine("Drawing Circle");
         }
     }

     class Square : IShape
     {
         public void Draw()
         {
             Console.WriteLine("Drawing Square");
         }
     }
     
🤔 Примеры использования полиморфизма 🤔 Перегрузка методов (статический полиморфизм)
class Printer
{
    public void Print(string message)
    {
        Console.WriteLine(message);
    }

    public void Print(int number)
    {
        Console.WriteLine(number);
    }
}

class Program
{
    static void Main()
    {
        Printer printer = new Printer();
        printer.Print("Hello, world!");
        printer.Print(123);
    }
}
🤔 Переопределение методов (динамический полиморфизм)
class Program
{
    static void Main()
    {
        Animal myDog = new Dog();
        myDog.MakeSound(); // Output: Bark
    }
}
🤔 Интерфейсы (динамический полиморфизм)
class Program
{
    static void Main()
    {
        IShape circle = new Circle();
        IShape square = new Square();
        
        circle.Draw(); // Output: Drawing Circle
        square.Draw(); // Output: Drawing Square
    }
}
🤔 Краткий ответ Полиморфизм в C# бывает двух видов: статический и динамический. Статический включает перегрузку методов и операторов, а динамический включает переопределение методов и использование интерфейсов. Полиморфизм позволяет использовать единый интерфейс для работы с объектами разных типов. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

ТОП-4 Курса по Управлению проектами Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов
ТОП-4 Курса по Управлению проектами Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов студентов. ⚡Проджект-менеджер выстраивает процессы и управляет проектом целиком. ✅Получите одну из самых востребованных профессий и станьте тем специалистом, от которого будет зависеть успех всего проекта. 📱Научитесь контролировать все этапы работы, распределять задачи между участниками команды и грамотно оценивать результаты. Выбрать #реклама 16+ tutortop.ru О рекламодателе

🤔 Вопрос: Какой атрибут в C# используется для указания, что метод должен быть переопределен в производном классе?
Anonymous voting

📌 Какова концепция сборки мусора в С#? 💬 Спрашивают в 22% собеседований Сборка мусора (Garbage Collection, GC) в C# — это автоматический процесс управления памятью, который освобождает память, занятую объектами, которые больше не используются приложением. Этот механизм помогает разработчикам избежать ошибок, связанных с управлением памятью вручную, таких как утечки памяти и неправильное использование освобожденных ресурсов. Давайте рассмотрим концепцию сборки мусора в C# подробнее. 🤔 Основные концепции сборки мусора 1️⃣ Управляемая куча (Managed Heap): ➕ Управляемая куча — это область памяти, в которой размещаются объекты, созданные в управляемой среде .NET. Когда создается новый объект, память для него выделяется в управляемой куче. 2️⃣ Корни (Roots): ➕ Корни — это переменные и ссылки, которые являются начальными точками для сборки мусора. Они включают глобальные и статические переменные, локальные переменные в стеке, а также ссылки из регистров процессора. 3️⃣ Алгоритм маркировки и сжатия (Mark-and-Compact): ➕ GC использует алгоритм маркировки и сжатия для определения объектов, которые больше не используются. Сначала он помечает все доступные объекты (те, до которых можно добраться из корней), а затем удаляет все непомеченные объекты, освобождая их память. 4️⃣ Поколения (Generations): ➕ Память управляемой кучи разделена на три поколения: поколение 0, поколение 1 и поколение 2. Это позволяет оптимизировать процесс сборки мусора: ➕ Поколение 0: Содержит новые объекты. Сборка мусора здесь происходит чаще всего, так как большинство объектов живут недолго. ➕ Поколение 1: Содержит объекты, которые пережили одну сборку мусора. ➕ Поколение 2: Содержит объекты, которые пережили несколько сборок мусора. Сборка мусора здесь происходит реже всего, так как такие объекты считаются долгоживущими. 🤔 Этапы сборки мусора 1️⃣ Инициализация сборки мусора: ➕ Когда выделяется новая память и управляемая куча достигает определенного порога, запускается процесс сборки мусора. 2️⃣ Маркировка (Mark): ➕ GC проходит по всем корням и помечает все объекты, которые могут быть достигнуты. 3️⃣ Удаление (Sweep): ➕ После маркировки все непомеченные объекты считаются недоступными и могут быть удалены. 4️⃣ Сжатие (Compact): ➕ Для улучшения производительности и уменьшения фрагментации памяти, сборщик мусора может переместить оставшиеся объекты, чтобы освободить блоки памяти. 🤔 Пример кода с использованием сборки мусора
class Program
{
    static void Main()
    {
        for (int i = 0; i < 1000; i++)
        {
            CreateObject();
        }

        // Явный вызов сборщика мусора (не рекомендуется для обычного использования)
        GC.Collect();
    }

    static void CreateObject()
    {
        MyClass obj = new MyClass();
        // Объект obj будет собран сборщиком мусора, когда он больше не будет использоваться
    }
}

class MyClass
{
    // Поля и методы класса
}
🤔 Краткий ответ Сборка мусора в C# автоматически управляет памятью, освобождая её от объектов, которые больше не нужны. Она помечает используемые объекты и удаляет те, что не используются, что помогает избежать утечек памяти и ошибок управления памятью. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Jobski - твой помощник при поиске работы в IT Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек техно
Jobski - твой помощник при поиске работы в IT Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек технологий. Узнать больше #реклама jobski.ru О рекламодателе

🤔 Какой атрибут в C# используется для определения, должен ли метод быть включен в XML-документацию?
Anonymous voting

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

📌 Какие бывают типы данных? 💬 Спрашивают в 22% собеседований В C# существует множество различных типов данных, которые можно разделить на две основные категории: значимые типы (value types) и ссылочные типы (reference types). Рассмотрим каждую из этих категорий и их подтипы. 🤔 Значимые типы (Value Types) Значимые типы хранят данные непосредственно в своей памяти. Они обычно располагаются в стеке и имеют фиксированный размер. К значимым типам относятся: 1️⃣ Простые типы (Simple Types)Числовые типы ➕ Целочисленные типы: ➕ byte (8 бит) ➕ sbyte (8 бит) ➕ short (16 бит) ➕ ushort (16 бит) ➕ int (32 бита) ➕ uint (32 бита) ➕ long (64 бита) ➕ ulong (64 бита) ➕ Вещественные типы: ➕ float (32 бита) ➕ double (64 бита) ➕ Десятичный тип: ➕ decimal (128 бит) ➕ Логический типbool (1 бит, значения true или false) ➕ Символьный типchar (16 бит, символы в формате Unicode) 2️⃣ Структуры (Structs) ➕ Пользовательские типы, которые могут содержать поля, свойства и методы. ➕ Пример: struct Point { public int X; public int Y; } 3️⃣ Перечисления (Enums) ➕ Специальные типы, представляющие набор именованных констант. ➕ Пример: enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } 4️⃣ Nullable Types ➕ Типы, которые могут принимать значение null. ➕ Пример: int?, double? 🤔 Ссылочные типы (Reference Types) Ссылочные типы хранят ссылки на данные, которые размещаются в куче. К ссылочным типам относятся: 1️⃣ Классы (Classes) ➕ Основные объекты в C#, могут содержать поля, свойства, методы и события. ➕ Пример: class Person { public string Name; public int Age; } 2️⃣ Интерфейсы (Interfaces) ➕ Определяют контракт, который должны реализовать классы. ➕ Пример: interface IMovable { void Move(); } 3️⃣ Массивы (Arrays) ➕ Коллекции однотипных элементов. ➕ Пример: int[] numbers = new int[5]; 4️⃣ Делегаты (Delegates) ➕ Типы, которые представляют собой ссылки на методы. ➕ Пример: delegate void Process(int value); 5️⃣ Строки (Strings) ➕ Непосредственно представляют собой последовательность символов. ➕ Пример: string message = "Hello, World!"; 6️⃣ Записи (Records) ➕ Новый тип в C# 9.0, предназначенный для неизменяемых объектов. ➕ Пример: record Person(string Name, int Age); 🤔 Примеры и использование 🤔 Значимые типы
int a = 5;
float b = 3.14f;
bool isTrue = true;
char letter = 'A';
🤔 Ссылочные типы
string message = "Hello, World!";
Person person = new Person { Name = "Alice", Age = 30 };

int[] numbers = new int[] { 1, 2, 3, 4, 5 };
🤔 Краткий ответ Типы данных в C# делятся на значимые и ссылочные. Значимые типы хранят данные непосредственно, а ссылочные типы хранят ссылки на данные в памяти. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🔥 Битый код - канал для настоящих кодеров! 🔴 Тебе надоело сталкиваться с багами и ошибками в коде? 🔴 Хочешь прокачать свои
🔥 Битый код - канал для настоящих кодеров! 🔴 Тебе надоело сталкиваться с багами и ошибками в коде? 🔴 Хочешь прокачать свои навыки и узнать, как эффективно решать сложные задачи? ⭐️ Тогда тебе к нам! На канале Битый код ты найдешь: 🟡 Советы по оптимизации кода 🟡 Практические примеры и решения 🧠 Развивай свои навыки программирования вместе с нами и становись настоящим профессионалом! 🔥 Присоединяйся к Битому коду и учись исправлять ошибки как настоящий мастер.

Как предпринимателям продвигать свой бизнес в интернете Узнайте на бесплатном интенсиве Яндекс Рекламы «Про движение малого б
Как предпринимателям продвигать свой бизнес в интернете Узнайте на бесплатном интенсиве Яндекс Рекламы «Про движение малого бизнеса: настраиваем рекламу с нуля». За 4 недели разберётесь в рекламных инструментах, научитесь рассчитывать бюджет, самостоятельно настраивать кампанию и анализировать результаты. Стартуем 5 августа! Регистрируйтесь: Зарегистрироваться #реклама 16+ yandex.ru О рекламодателе

🤔 Какое пространство имён в C# обычно используется для работы с веб-запросами?
Anonymous voting

🤯 Чтобы не сидеть в творческом беспорядке, структурируй его с помощью Куб прогресса. Тут ты найдешь кучу советов для ITшника
🤯 Чтобы не сидеть в творческом беспорядке, структурируй его с помощью Куб прогресса. Тут ты найдешь кучу советов для ITшника: 🟡 пользуйся полезными сайтами 🟡 подчеркивай интересные мысли 🛞 Начинай внедрять лайфхаки - создай структуру внутри себя

Repost from Backend
В приватной базе собесов уже больше 100 записей. Яндекс, Тиньков, Сбербанк, Самокат, Озон и другие крупные компании в базе.

📌 Зачем сделали ref & out для ссылочных типов? 💬 Спрашивают в 22% собеседований В C# ключевые слова ref и out используются для передачи аргументов по ссылке, что позволяет методам изменять значения этих аргументов. Эти механизмы полезны как для значимых типов (структур), так и для ссылочных типов (объектов). Давайте рассмотрим более детально, зачем и как их используют для ссылочных типов. 🤔 Зачем нужны `ref` и `out` для ссылочных типов? 🤔 `ref`Изменение самого объекта: С помощью ref можно передавать ссылочные типы таким образом, чтобы метод мог изменять саму ссылку, то есть ссылаться на другой объект. ➕ Пример: Представим себе метод, который принимает объект и может его заменить новым объектом. 🤔 `out`Передача непроинициализированных объектов: Ключевое слово out позволяет передавать аргумент, который не обязательно должен быть инициализирован до вызова метода. Метод, принимающий out аргумент, обязан присвоить ему значение до завершения работы. ➕ Пример: Метод, который инициализирует и возвращает объект. 🤔 Как используются `ref` и `out`? 🤔 Пример использования `ref`
class Program
{
    static void ChangeReference(ref MyClass obj)
    {
        obj = new MyClass { Value = 20 };
    }

    static void Main()
    {
        MyClass myObj = new MyClass { Value = 10 };
        ChangeReference(ref myObj);
        Console.WriteLine(myObj.Value); // Output: 20
    }
}

class MyClass
{
    public int Value { get; set; }
}
В этом примере ref позволяет методу ChangeReference изменить ссылку myObj на новый объект MyClass. 🤔 Пример использования `out`
class Program
{
    static void InitializeObject(out MyClass obj)
    {
        obj = new MyClass { Value = 30 };
    }

    static void Main()
    {
        MyClass myObj;
        InitializeObject(out myObj);
        Console.WriteLine(myObj.Value); // Output: 30
    }
}

class MyClass
{
    public int Value { get; set; }
}
В этом примере метод InitializeObject использует out для создания и инициализации нового объекта MyClass. 🤔 Почему это нужно? 1️⃣ Гибкость: ref и out добавляют гибкости при работе с методами, позволяя им изменять ссылки на объекты или создавать и возвращать новые объекты. 2️⃣ Оптимизация: Эти механизмы могут быть полезны для оптимизации, когда необходимо избежать лишнего копирования данных, особенно при работе с большими объектами. 3️⃣ Логика инициализации: out полезен для методов, которые должны вернуть несколько значений или инициализировать объекты, которые не могут быть инициализированы заранее. 🤔 Краткий ответ ref и out используются для передачи объектов по ссылке, что позволяет методам изменять ссылки на объекты или инициализировать их. Это добавляет гибкости и позволяет оптимизировать работу с памятью. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 Начните прямо сейчас ⚡ Зарегистрироваться #реклама direct.yandex.ru О рекламодателе

🤔 Что делает ключевое слово ref в C#?
Anonymous voting

👩‍💻 Программирование теперь в телеграм! Вот обширная база материалов, которая ежедневно обновляется, выбирай своё направлен
👩‍💻 Программирование теперь в телеграм! Вот обширная база материалов, которая ежедневно обновляется, выбирай своё направление: Обучение JavaScript с нуля Обучение Python с нуля Обучение Java с нуля Обучение HTML/CSS с нуля Обучение C/С++ с нуля Обучение С# с нуля Обучение SQL/GO/PHP с нуля Обучение Kotlin/Swift с нуля Архив на 3489ГБ: Курсы, книги, шпаргалки, статьи, видео, ресурсы — всё собрано в одном месте: @roadmap_ready

Обучаем Java-разработчиков оплата после выхода на работу В Kata Academy можно выучиться на Java-разработчика бесплатно, а зап
Обучаем Java-разработчиков оплата после выхода на работу В Kata Academy можно выучиться на Java-разработчика бесплатно, а заплатить уже после трудоустройства по специальности из фактической зарплаты. Если задуматься, то все в выигрыше: — ты получаешь работу в Москве или Санкт-Петербурге с хорошей зарплатой, мы получаем процент за инвестиции в тебя; — в наших интересах научить тебя так, чтобы твоя зарплата была как можно выше; — мы прокачиваем твои навыки еще 2 года после курса: проводим выездные мероприятия и мастер-классы — и доходы наших выпускников растут; — мы не зависим от банков и их рассрочек — кризис не повлиял на доступность курсов. Чтобы попасть на курс, нужно выполнить небольшое тестовое задание. Переходи по ссылке и оставляй заявку! Узнать больше #реклама 16+ kata.academy О рекламодателе

🤔 Какое ключевое слово используется для определения асинхронного метода в C#?
Anonymous voting