UIntPtr.Subtract(UIntPtr, Int32) Metodo

Definizione

Sottrae un offset da un intero senza segno.

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

Parametri

pointer
UIntPtr

unativeint

Intero senza segno da cui sottrarre l'offset.

offset
Int32

Offset da sottrarre.

Restituisce

UIntPtr

unativeint

Nuovo intero senza segno che riflette la sottrazione di offset da pointer.

Esempio

Nell'esempio seguente viene creata un'istanza di un IntPtr oggetto che punta alla fine di una matrice di dieci elementi e quindi chiama il Subtract metodo per scorrere gli elementi nella matrice in ordine inverso.

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

Commenti

Il Subtract metodo non genera un'eccezione se il risultato è troppo piccolo per rappresentare come intero senza segno nel processo di esecuzione. Invece, l'operazione di sottrazione viene eseguita in un contesto non controllato.

I linguaggi che non supportano l'overload degli operatori o gli operatori personalizzati possono usare questo metodo per sottrarre un offset dal valore di un puntatore.

Si applica a

Vedi anche