このコードを実行せずに、Foo
呼び出されるメソッドを特定します。
class A
{
public void Foo( int n )
{
Console.WriteLine( "A::Foo" );
}
}
class B : A
{
/* note that A::Foo and B::Foo are not related at all */
public void Foo( double n )
{
Console.WriteLine( "B::Foo" );
}
}
static void Main( string[] args )
{
B b = new B();
/* which Foo is chosen? */
b.Foo( 5 );
}
どの方法ですか?なぜ?コードを実行しても不正行為はありません。
このパズルは Web で見つけました。私はそれが好きで、インタビューの質問として使用するつもりだと思います...意見はありますか?
編集:私はこれを間違って候補者を判断するつもりはありません.C#とCLR自体についてより完全な議論を開く方法としてそれを使用するので、候補者の能力をよく理解することができます.
ソース: http://netpl.blogspot.com/2008/06/c-puzzle-no8-beginner.html