ContractClassAttribute Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Specifies that a separate type contains the code contracts for this type.
Assembly: mscorlib (in mscorlib.dll)
'Declaration <AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Delegate Or AttributeTargets.Interface, AllowMultiple := False, _ Inherited := False)> _ <ConditionalAttribute("CONTRACTS_FULL")> _ <ConditionalAttribute("DEBUG")> _ Public NotInheritable Class ContractClassAttribute _ Inherits Attribute
The ContractClassAttribute type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ContractClassAttribute | Initializes a new instance of the ContractClassAttribute class. |
| Name | Description | |
|---|---|---|
![]() | TypeContainingContracts | Gets the type that contains the code contracts for this type. |
| Name | Description | |
|---|---|---|
![]() | Equals | Infrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Returns the hash code for this instance. (Inherited from Attribute.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | Match | When overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
The following example shows how to use the ContractClassAttribute attribute to specify that the contracts for the IArray interface are contained in the IArrayContracts class.
Imports System Imports System.Diagnostics.Contracts ' An IArray is an ordered collection of objects. <ContractClass(GetType(IArrayContract))> _ Public Interface IArray ' The Item property provides methods to read and edit entries in the array. Default Property Item(ByVal index As Integer) As [Object] ReadOnly Property Count() As Integer ' Adds an item to the list. ' The return value is the position the new element was inserted in. Function Add(ByVal value As Object) As Integer ' Removes all items from the list. Sub Clear() ' Inserts value into the array at position index. ' index must be non-negative and less than or equal to the ' number of elements in the array. If index equals the number ' of items in the array, then value is appended to the end. Sub Insert(ByVal index As Integer, ByVal value As [Object]) ' Removes the item at position index. Sub RemoveAt(ByVal index As Integer) End Interface 'IArray <ContractClassFor(GetType(IArray))> _ Friend MustInherit Class IArrayContract Implements IArray Function Add(ByVal value As Object) As Integer Implements IArray.Add ' Returns the index in which an item was inserted. Contract.Ensures(Contract.Result(Of Integer)() >= -1) ' Contract.Ensures(Contract.Result(Of Integer)() < CType(Me, IArray).Count) ' Return 0 End Function 'IArray.Add Default Property Item(ByVal index As Integer) As Object Implements IArray.Item Get Contract.Requires(index >= 0) Contract.Requires(index < CType(Me, IArray).Count) Return 0 ' End Get Set(ByVal value As [Object]) Contract.Requires(index >= 0) Contract.Requires(index < CType(Me, IArray).Count) End Set End Property Public ReadOnly Property Count() As Integer Implements VB.IArray.Count Get Contract.Requires(Count >= 0) Contract.Requires(Count < CType(Me, IArray).Count) Return 0 ' End Get End Property Sub Clear() Implements IArray.Clear Contract.Ensures(CType(Me, IArray).Count = 0) End Sub 'IArray.Clear Sub Insert(ByVal index As Integer, ByVal value As [Object]) Implements IArray.Insert Contract.Requires(index >= 0) Contract.Requires(index <= CType(Me, IArray).Count) ' For inserting immediately after the end. Contract.Ensures(CType(Me, IArray).Count = Contract.OldValue(CType(Me, IArray).Count) + 1) End Sub 'IArray.Insert Sub RemoveAt(ByVal index As Integer) Implements IArray.RemoveAt Contract.Requires(index >= 0) Contract.Requires(index < CType(Me, IArray).Count) Contract.Ensures(CType(Me, IArray).Count = Contract.OldValue(CType(Me, IArray).Count) - 1) End Sub 'IArray.RemoveAt End Class 'IArrayContract
Show:


