Code Contracts seem rather silly. C#/VB is statically typed, no? Method contracts should be implicit in the method declaration, then.<p>Granted, this gives you more control over what literal values may be passed to a method. But isn't that (part of) what exceptions are for? What additional value do these add?