UIntPtr.Subtract(UIntPtr, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
unativeint
Eine neue ganze Zahl ohne Vorzeichen, die die Subtraktion von offset
von pointer
widerspiegelt.
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.