What are code contracts?
Code contracts help you to state the code assumptions and statements stating the behavior of your code in a language-neutral way. The contracts are contained in the form of pre-conditions, post-conditions and object-invariants. The contracts help you to improve-testing by enabling run-time checking, static contract verification, and documentation generation.
The System.Diagnostics.Contracts namespace have static classes that are used to express contracts in your code.