«Boxing» (Задача)

Что выведет следующий код?

struct Foo
{   
  int value;
  public override string ToString()
  { 
    if (value == 2)
      return "Baz";
    return (value++ == 0) ? "Foo" : "Bar";
  }
}
void Main()
{ 
  var foo = new Foo();
  Console.WriteLine(foo);
  Console.WriteLine(foo);
  object bar = foo;
  object qux = foo;
  object baz = bar;
  Console.WriteLine(baz);
  Console.WriteLine(bar);
  Console.WriteLine(baz);
  Console.WriteLine(qux);
}

Решение

Last updated