Ecco un interessante post (suggerito anche da Eric Gunnerson) che aiuta anche a comprendere come il runtime valuta le espressioni

http://blogs.msdn.com/lucabol/archive/2004/08/31/223580.aspx

Il consiglio finale è: NON SCRIVETE QUESTO CODICE.