…по мотивам одной рассылки

Что выведет следующий код (при сборке под .NET 4.0 в 2010-й студии)?

using System;

class Base
{
   
public virtual bool Method1(bool value) { return true
; }
   
public virtual bool Method2(bool value) { return true
; }
}

class Derived : Base
{
   
public override bool Method1(bool value = true
)
    {
       
return
value;
    }

   
public override bool Method2(bool value = true
)
    {
       
return
Method1();
    }
}

class Program
{
   
static void Main(string
[] args)
    {
       
Derived a = new Derived
();

       
Console.WriteLine("Call to Method1, expected: True, got: {0}"
, a.Method1());
       
Console.WriteLine("Call to Method2, expected: True, got: {0}", a.Method2());
    }
}

Что выведет этот же код, если собрать его в Visual Studio 2012?

6 Comments

  1. True, или какой фак, там нет ни одного False :)

    Call to Method1, expected: True, got: True
    Call to Method2, expected: True, got: True

    Reply

  2. Но как?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>