T-Vision · сентябрь 2024

Тех собес на middle-senior C# Разработчик в T-Vision

middle-senior Тех собес 2 вопроса 2 задачи
1

Лайвкодинг

1. Задача: Написать любой алгоритм сортировки

Задача 2

Реализовать CRUD WebAPI со следующими требованиями:

  1. Таблицы:
    • Songs (Песни): id, title
    • Genres (Жанры): id, name
  2. Отношения:
    • Многие ко многим между Songs и Genres.
  3. Эндпоинты:
    • GET /genres: Получить список всех жанров.
    • GET /genres/{id}: Получить информацию о жанре и связанных с ним песнях.
    • GET /songs: Получить список всех песен.
    • GET /songs/{id}: Получить информацию о песне и связанных с ней жанрах.
    • POST /songs: Создать новую песню.
    • POST /genres: Создать новый жанр.
    • DELETE /songs/{id}: Удалить песню.
    • DELETE /genres/{id}: Удалить жанр.
2

Вопросы по C# коду

3. Что выведет консольный вывод в коде с использованием структуры и интерфейса IDisposable?

public struct Foo : IDisposable
{
    public Foo() { }
    public int A { get; private set; } = 100;
    public void Dispose()
    {
        A += 1;
    }
}
class Program
{
    static void Main(string[] args)
    {
        var foo = new Foo();
        using (foo)
        {
            Console.WriteLine(foo.A); // ???
        }
        Console.WriteLine(foo.A); // ???
    }
}

4. Что выведет консольный вывод при работе с локальной переменной в лямбда-выражении?

int a = 100;
Action action = () => a += 1;
Console.WriteLine(a); // ??
action();
Console.WriteLine(a); // ???
3

Вложения