Chapter 8. Code Contracts

This chapter will introduce you to code contracts. This is a very powerful technology and one that will enable you to secure your code from unnecessary errors. This is especially true when you are writing a class that is shared between several developers. Code contracts allow you to inspect and handle data passed to your method under contract. If the contract fails its validation, you can take decisive action within your method to handle this eventuality. This chapter will cover the following recipes:

  • Downloading, installing, and integrating code contracts into Visual Studio
  • Creating code contract preconditions
  • Creating code contract postconditions
  • Creating code contract invariant
  • Creating code contract Assert and Assume methods
  • Creating code contract ForAll method
  • Creating code contract ValueAtReturn method
  • Creating code contract Result method
  • Using code contracts on abstract classes
  • Using contract abbreviator methods
  • Creating tests using IntelliTest
  • Using code contracts in extension methods

Introduction

You might be wondering what code contracts are exactly. To explain it in layman's terms, a code contract is a definition that you add to your methods. It tells the compilers that the method under contract will always adhere to specific conditions. An example of this is that the method will never return a null value to the calling code or that the method will always expect a parameter greater than a specific value. If any of these conditions are not met, your code can emit an exception, and the developer integrating with your class will be prompted to refine their calling code. On the flip side, when a developer calls your class, they can be sure that the method under contract will always behave in a specific way and never deviate from it.

Code contracts really stand out when working within a team of developers, but implementing this technology in a single-developer solution will only improve your code.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.167.183