UIntPtr.Subtract(UIntPtr, Int32) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Trekt een verschuiving af van een niet-ondertekend geheel getal.
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
Parameters
- pointer
-
UIntPtr
unativeint
Het niet-ondertekende gehele getal waaruit de verschuiving moet worden afgetrokken.
- offset
- Int32
De verschuiving die moet worden afgetrokken.
Retouren
unativeint
Een nieuw niet-ondertekend geheel getal dat de aftrekking van offsetpointerwaaruit wordt weergegeven.
Voorbeelden
In het volgende voorbeeld wordt een IntPtr object geïnstitueerd dat verwijst naar het einde van een matrix met tien elementen en wordt vervolgens de Subtract methode aangeroepen om de elementen in de matrix in omgekeerde volgorde te herhalen.
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
Opmerkingen
De Subtract methode genereert geen uitzondering als het resultaat te klein is om als een niet-ondertekend geheel getal in het uitvoerproces weer te geven. In plaats daarvan wordt de aftrekkingsbewerking uitgevoerd in een niet-gecontroleerd context.
Talen die geen ondersteuning bieden voor overbelasting van operatoren of aangepaste operators, kunnen deze methode gebruiken om een offset af te trekken van de waarde van een aanwijzer.