# UIntPtr.Subtract(UIntPtr, Int32) Método

## Definição

Subtrai um deslocamento do valor de um ponteiro sem sinal.Subtracts an offset from the value of an unsigned pointer.

``````public:
static UIntPtr Subtract(UIntPtr pointer, int offset);``````
``public static UIntPtr Subtract (UIntPtr pointer, int offset);``
``static member Subtract : unativeint * int -> unativeint``
``Public Shared Function Subtract (pointer As UIntPtr, offset As Integer) As UIntPtr``

#### Parâmetros

pointer
UIntPtr

O ponteiro sem sinal do qual subtrair o deslocamento.The unsigned pointer to subtract the offset from.

offset
Int32

O deslocamento a ser subtraído.The offset to subtract.

#### Retornos

Um novo ponteiro sem sinal que reflete a subtração de `offset` de `pointer`.A new unsigned pointer that reflects the subtraction of `offset` from `pointer`.

## Exemplos

O exemplo a seguir instancia um objeto IntPtr que aponta para o final de uma matriz de dez elementos e, em seguida, chama o método Subtract para iterar os elementos na matriz na ordem inversa.The following example instantiates an IntPtr object that points to the end of a ten-element array, and then calls the Subtract method to iterate the elements in the array in reverse order.

``````using System;

public class Example
{
public static void Main()
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
UIntPtr ptr = (UIntPtr) arr[arr.GetUpperBound(0)];
for (int ctr = 0; ctr <= arr.GetUpperBound(0); ctr++)
{
UIntPtr newPtr = UIntPtr.Subtract(ptr, ctr);
Console.Write("{0}   ", newPtr);
}
}
}
// The example displays the following output:
//       10   9   8   7   6   5   4   3   2   1
``````
``````Module Example
Public Sub Main()
Dim arr() As Integer = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Dim ptr As UIntPtr = CType(arr(arr.GetUpperBound(0)), UIntPtr)
For ctr As Integer= 0 To arr.GetUpperBound(0)
Dim newPtr As UIntPtr = UIntPtr.Subtract(ptr, ctr)
Console.Write("{0}   ", newPtr)
Next
End Sub
End Module
' The example displays the following output:
'       10   9   8   7   6   5   4   3   2   1
``````

## Comentários

O método Subtract não lançará uma exceção se o resultado for muito pequeno para representar como um ponteiro na plataforma especificada.The Subtract method does not throw an exception if the result is too small to represent as a pointer on the specified platform. Em vez disso, a operação de subtração é executada em um contexto desmarcado.Instead, the subtraction operation is performed in an unchecked context.

Idiomas que não dão suporte a sobrecarga de operador ou operadores personalizados podem usar esse método para subtrair um deslocamento do valor de um ponteiro não assinado.Languages that do not support operator overloading or custom operators can use this method to subtract an offset from the value of an unsigned pointer.