UIntPtr.Subtract(UIntPtr, Int32) Methode

Definitie

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

UIntPtr

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.

Van toepassing op

Zie ook