UIntPtr.Subtract(UIntPtr, Int32) UIntPtr.Subtract(UIntPtr, Int32) UIntPtr.Subtract(UIntPtr, Int32) UIntPtr.Subtract(UIntPtr, Int32) Method

Definition

Subtrahiert einen Offset vom Wert eines Zeigers ohne Vorzeichen.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

Parameter

pointer
UIntPtr UIntPtr UIntPtr UIntPtr

Der Zeiger ohne Vorzeichen, von dem der Offset subtrahiert werden soll.The unsigned pointer to subtract the offset from.

offset
Int32 Int32 Int32 Int32

Der Offset, der subtrahiert werden soll.The offset to subtract.

Gibt zurück

Ein neuer Zeiger ohne Vorzeichen, der die Subtraktion von offset von pointer widerspiegelt.A new unsigned pointer that reflects the subtraction of offset from pointer.

Beispiele

Im folgenden Beispiel wird ein IntPtr -Objekt instanziiert, das auf das Ende eines Arrays mit zehn Elementen zeigt. Anschließend wird die Subtract -Methode aufgerufen, um die Elemente im Array in umgekehrter Reihenfolge zu durchlaufen.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

Hinweise

Die Subtract -Methode löst keine Ausnahme aus, wenn das Ergebnis zu klein ist, um als Zeiger auf der angegebenen Plattform dargestellt zu werden.The Subtract method does not throw an exception if the result is too small to represent as a pointer on the specified platform. Stattdessen wird die Subtraktions Operation in einem nicht überprüften Kontext ausgeführt.Instead, the subtraction operation is performed in an unchecked context.

Sprachen, die das Überladen von Operatoren oder benutzerdefinierte Operatoren nicht unterstützen, können diese Methode verwenden, um einen Offset vom Wert eines Zeigers ohne Vorzeichen zu subtrahieren.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.

Gilt für:

Siehe auch