UIntPtr.Subtract(UIntPtr, Int32) Metodo

Definizione

Sottrae un offset dal valore di un puntatore senza segno.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

Parametri

pointer
UIntPtr

Puntatore senza segno da cui sottrarre l'offset.The unsigned pointer to subtract the offset from.

offset
Int32

Offset da sottrarre.The offset to subtract.

Restituisce

UIntPtr

Nuovo puntatore senza segno che riflette la sottrazione di offset da pointer.A new unsigned pointer that reflects the subtraction of offset from pointer.

Esempio

Nell'esempio seguente viene creata un'istanza di un IntPtr oggetto che punta alla fine di una matrice di dieci elementi, quindi viene chiamato il Subtract metodo per eseguire l'iterazione degli elementi nella matrice in ordine inverso.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

Commenti

Il Subtract metodo non genera un'eccezione se il risultato è troppo piccolo per essere rappresentato come puntatore sulla piattaforma specificata.The Subtract method does not throw an exception if the result is too small to represent as a pointer on the specified platform. Al contrario, l'operazione di sottrazione viene eseguita in un contesto non controllato.Instead, the subtraction operation is performed in an unchecked context.

I linguaggi che non supportano l'overload degli operatori o gli operatori personalizzati possono utilizzare questo metodo per sottrarre un offset dal valore di un puntatore senza segno.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.

Si applica a

Vedi anche