System.Diagnostics.Contracts Namespace

The System.Diagnostics.Contracts namespace contains static classes for representing program contracts such as preconditions, postconditions, and invariants.

Remarks

To enforce the code contracts at runtime use the ccrewrite tool. To statically check the code contracts use the cccheck tool.

Classes

TypeReason
Contract

Contains static methods for representing program contracts such as preconditions, postconditions, and object invariants.

ContractAbbreviatorAttribute

Defines abbreviations that you can use in place of the full contract syntax.

ContractArgumentValidatorAttribute

Enables the factoring of legacy if-then-throw code into separate methods for reuse, and provides full control over thrown exceptions and arguments.

ContractClassAttribute

Specifies that a separate type contains the code contracts for this type.

ContractClassForAttribute

Specifies that a class is a contract for a type.

ContractFailedEventArgs

Provides methods and data for the System.Diagnostics.Contracts.Contract.ContractFailed event.

ContractFailureKind

Specifies the type of contract that failed.

ContractInvariantMethodAttribute

Marks a method as being the invariant method for a class.

ContractOptionAttribute

Enables you to set contract and tool options at assembly, type, or method granularity.

ContractPublicPropertyNameAttribute

Specifies that a field can be used in method contracts when the field has less visibility than the method.

ContractReferenceAssemblyAttribute

Specifies that an assembly is a reference assembly that contains contracts.

ContractRuntimeIgnoredAttribute

Identifies a member that has no run-time behavior.

ContractVerificationAttribute

Instructs analysis tools to assume the correctness of an assembly, type, or member without performing static verification.

PureAttribute

Indicates that a type or method is pure, that is, it does not make any visible state changes.