Friday, June 25, 2010

C# Puzzle No.21 (beginner)

Is it possible to call a method on a null object reference? Of course, not!

static void Main( string[] args )
{
    Foo _foo = null;
 
    // will throw NullReferenceException
    Console.WriteLine( _foo.Bar() );
 
    Console.ReadLine();
}

Oh, really?

Your goal is to provide all necessary auxiliary definitions and implementations so that the code above not only does not throw NullReferenceException but also writes “Hello world” at the console.

2 comments:

  1. My solution using extension method:
    public class Foo {}

    public static class FooExtension
    {
    public static string Bar(this Foo foo)
    {
    return "Hello world";
    }
    }

    class Program
    {
    static void Main(string[] args)
    {
    Foo _foo = null;
    Console.WriteLine(_foo.Bar());
    Console.ReadLine();
    }
    }

    ReplyDelete
  2. That's exactly what I've been thinking of. Regards :)

    ReplyDelete