What is a practical usage of Code Contracts in .NET 4.0?

From The Code Contracts User Manual:

Contracts allow you to express preconditions, postconditions and object invariants in your code for runtime
checking, static analysis, and documentation.

Code Contracts are used for static verification; imagine if – at compile time – you caught not only syntax errors but also logic errors. This is the vision of static program verification.

Real World Example

You could use contracts (and static verification) to reduce the cost of testing… in particular regression testing. As an example, let’s say I write some code which fulfills some business needs… but later, performance needs change, and I’m required to optimize. If I first write a contract, then – when my new optimized code is verified – if it no longer fulfills the original contract I’ll get an error message in my IDE, just like if I had a compile time error. As a result, you find and resolve the bug almost immediately, which costs less than a round of testing.

Leave a Comment