UIntPtr.Subtract(UIntPtr, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Subtraherar en förskjutning från ett osignerat heltal.
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
Parametrar
- pointer
-
UIntPtr
unativeint
Det osignerade heltal som förskjutningen ska subtraheras från.
- offset
- Int32
Förskjutningen för att subtrahera.
Returer
unativeint
Ett nytt osignerat heltal som återspeglar subtraktionen av offset från pointer.
Exempel
I följande exempel instansierar ett IntPtr objekt som pekar mot slutet av en tioelementsmatris och anropar Subtract sedan metoden för att iterera elementen i matrisen i omvänd ordning.
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
Kommentarer
Metoden Subtract utlöser inget undantag om resultatet är för litet för att representeras som ett osignerat heltal i körningsprocessen. I stället utförs subtraktionen i en omarkerad kontext.
Språk som inte stöder överlagring av operatorer eller anpassade operatorer kan använda den här metoden för att subtrahera en förskjutning från värdet för en pekare.