Wednesday, May 11, 2011

Handy use of extension method on a bool

I don’t like to overuse if/else statements.  I really dislike seeing code like this:

if(somethingIsTrue) { DoSomethingWhenTrue( ) ; } else { DoSomethingElse( ) ; }

I just had an idea about using extension methods so I can write this instead:

somethingIsTrue.Branch( ( ) => DoSomethingWhenTrue( ), ( ) => DoSomethingElse( ) ) ;

… and here’s the extension method:

public static void Branch(this bool @bool, Action left, Action right) { if( @bool ) { left( ) ; } else { right( ) ; } }

Nice or not? I think it reads a bit better (for single line expressions anyway).