System.Diagnostics.Contracts Namespace
The System.Diagnostics.Contracts namespace contains static classes for representing program contracts such as preconditions, postconditions, and invariants.
| Class | Description | |
|---|---|---|
![]() | 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 Contract.ContractFailed event. |
![]() | 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. |
| Enumeration | Description | |
|---|---|---|
![]() | ContractFailureKind | Specifies the type of contract that failed. |

