Assume Contract
- 2 minutes to read
Purpose
This Code Provider adds the Assume precondition to method parameter(s) or variable assignment. The precondition ensures the passed or assigned parameters are not empty at runtime.
Availability
Available in the following cases.
- When the caret is at the beginning of a method body. In this case, the contract will test all method parameters and strings.
- When the caret is on a method’s parameter name. In this case, the contract will test only the selected parameter.
- When the caret is on a variable assignment.
Note
This Code Provider may be unavailable for variables of a non-nullable type, for instance, Integer.
Usage
Place the caret at the beginning of a method body.
Note
The blinking cursor shows the caret’s position at which the Code Provider is available.
- Press the Ctrl + . or Ctrl + ~ shortcut to invoke the Code Actions menu.
- Select Add Contract | Contract.Assume Contract from the menu.
After execution, the Code Provider adds the assumption statement against all the method parameters.
public void AddRecord(string name, object data) {
Contract.Assume(!string.IsNullOrEmpty(name), "name is null or empty.");
Contract.Assume(data != null, "data is null.");
//...
}
You can ask CodeRush to check arrays and collections length in code contracts. Refer to the Code Actions Settings topic for more information.
Note
If the source file does not contain reference to the System.Diagnostics.Contracts namespace, the corresponding reference will be added.