Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método IntPtr.Subtract (IntPtr, Int32)

.NET Framework (current version)
 

Subtrai um deslocamento do valor de um ponteiro.

Namespace:   System
Assembly:  mscorlib (em mscorlib.dll)

public static IntPtr Subtract(
	IntPtr pointer,
	int offset
)

Parâmetros

pointer
Type: System.IntPtr

O ponteiro para subtrair o deslocamento do.

offset
Type: System.Int32

O deslocamento para subtrair.

Valor Retornado

Type: System.IntPtr

Um ponteiro que reflete a subtração de offset de pointer.

O Subtract método lançará uma exceção se o resultado é pequeno demais para representar um ponteiro na plataforma específica. Em vez disso, a operação de subtração é executada em um contexto desmarcado.

Idiomas que não oferecem suporte a sobrecarga de operador ou operadores personalizados podem usar esse método para subtrair um deslocamento do valor de um ponteiro.

O exemplo a seguir instancia um IntPtr objeto que aponta para o final de uma matriz de dez elementos e, em seguida, chama o Subtract para iterar os elementos na matriz na ordem inversa.

using System;
using System.Runtime.InteropServices;

public class Example
{
   public static void Main()
   {
      int[] arr = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
      // Get the size of a single array element.
      int size = sizeof(int);
      unsafe {
         fixed(int* pend = &arr[arr.GetUpperBound(0)]) {
            IntPtr ptr = new IntPtr(pend);
            for (int ctr = 0; ctr < arr.Length; ctr++)
            {
               IntPtr newPtr = IntPtr.Subtract(ptr, ctr * size);
               Console.Write("{0}   ", Marshal.ReadInt32(newPtr));
            }
         }
      }
   }
}
// The example displays the following output:
//       20   18   16   14   12   10   8   6   4   2

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 4.0
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Windows Phone Silverlight
Disponível desde 8.0
Windows Phone
Disponível desde 8.1
Retornar ao início
Mostrar: