Freigeben über


UIntPtr.Subtract(UIntPtr, Int32) Methode

Definition

Subtrahiert einen Offset von einer ganzen Zahl ohne Vorzeichen.

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

unativeint

Die ganze Zahl ohne Vorzeichen, von der der Offset subtrahiert werden soll.

offset
Int32

Der Offset, der subtrahiert werden soll.

Gibt zurück

UIntPtr

unativeint

Eine neue ganze Zahl ohne Vorzeichen, die die Subtraktion von offset von pointerwiderspiegelt.

Beispiele

Im folgenden Beispiel wird ein IntPtr -Objekt instanziiert, das auf das Ende eines Zehnelementarrays zeigt, und dann die Subtract -Methode aufgerufen, um die Elemente im Array in umgekehrter Reihenfolge zu durchlaufen.

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
open System

let arr = [| 1; 2; 3; 4; 5; 6; 7; 8; 9; 10 |]
let ptr = UIntPtr(uint arr[arr.GetUpperBound 0])
for i = 0 to arr.GetUpperBound 0 do
    let newPtr = UIntPtr.Subtract(ptr, i)
    printf $"{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 im ausgeführten Prozess als ganze Zahl ohne Vorzeichen darzustellen. Stattdessen wird der Subtraktionsvorgang in einem nicht überprüften Kontext ausgeführt.

Sprachen, die keine Operatorüberladung oder benutzerdefinierte Operatoren unterstützen, können diese Methode verwenden, um einen Offset vom Wert eines Zeigers zu subtrahieren.

Gilt für:

Weitere Informationen