Creating code contract Assert and Assume methods
The code contract Assert
and Assume
methods might seem confusing at first, but both provide a specific function. Where the previous code contract conditions had to appear at the beginning of the methods they were defined in, the Assert
method can be placed somewhere inside a method. This means that it will have an effect on the code at that specific time in the compilation. If you, for example, perform a calculation somewhere in your method under contract and you need to check the value calculated, you can use Assert
to perform a check in place to ascertain whether the calculated value passes the contract.
Note
Don't confuse Debug.Assert
with Contract.Assert
. They aren't the same thing. Debug.Assert
will only have an effect if your code is run in the Debug mode. Contract.Assert
will run in the Debug and Release modes.
With Contract.Assume
, however, we are telling the code contract that it needs to assume that the condition it needs to check is...