Собеседование на позицию junior/middle developer

Часть 1

Последнее обновление: 08.03.2017

Вопрос 1

Есть следующие объявления классов A и B:

class A
{
    virtual void Foo()
    {
        Console.Write("Class A");
    }
}
class B: A
{
    override void Foo()
    {
        Console.Write("Class B");
    }
}

Что выведут на консоль такие вызовы метода Foo():

B obj1 = new A();
obj1.Foo();

B obj2 = new B();
obj2.Foo();

A obj3 = new B();
obj3.Foo();

Вопрос 2

Есть следующая структура:

public struct S : IDisposable
{
    private bool dispose;
    public void Dispose()
    {
        dispose = true;
    }
    public bool GetDispose()
    {
        return dispose;
    }
}

Что будет выведено в следующем случае:

var s = new S();
using (s)
{
    Console.WriteLine(s.GetDispose());
}
Console.WriteLine(s.GetDispose());

Варианты ответов:

  1. true, true

  2. true, false

  3. false, true

  4. false, false

Вопрос 3

Есть следующий код:

List<Action> actions = new List<Action>();
for(var count=0; count<10; count++)
{
    actions.Add(() => Console.WriteLine(count));
}
foreach(var action in actions)
{
    action();
}

Что будет выведено на консоль? Варианты ответов:

  1. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

  2. 10, 10, 10, 10, 10, 10, 10, 10, 10, 10

  3. Код сгенерирует исключение

  4. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

Вопрос 4

Что будет выведено на консоль в результате следующих операций:

int i = 1;
object obj = i;
++i;
Console.WriteLine(i);
Console.WriteLine(obj);
Console.WriteLine((short)obj);
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850