Share via


Contract.OldValue<T> Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Represents values as they were at the start of a method or property.

Namespace:  System.Diagnostics.Contracts
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function OldValue(Of T) ( _
    value As T _
) As T
public static T OldValue<T>(
    T value
)

Type Parameters

  • T
    The type of value.

Parameters

  • value
    Type: T
    The value to represent (field or parameter).

Return Value

Type: T
The value of the parameter or field at the start of a method or property.

Remarks

This method can be used only in the conditional expression for the Ensures contract.

Examples

The following example shows the use of the OldValue<T> method to ensure that a count has been updated. This code example is part of a larger example provided for the ContractClassAttribute class.

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
void IArray.Insert(int index, Object value)
{
    Contract.Requires(index >= 0);
    Contract.Requires(index <= ((IArray)this).Count);  // For inserting immediately after the end.
    Contract.Ensures(((IArray)this).Count == Contract.OldValue(((IArray)this).Count) + 1);
}

Version Information

Silverlight

Supported in: 5, 4

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.