Contract.OldValue<T> Method (T)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

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

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

public static T OldValue<T>(
	T 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.

Type Parameters


The type of value.

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

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.

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);

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top