A couple of years ago I discovered something called Design By Contract while reading The Pragmatic Programmer. I LOVED the way DBC worked. Unfortunately DBC doesn't have native support in .NET. There was a class written that is available on code project that I used it on a couple of projects and it worked well...