UIntPtr.Subtract(UIntPtr, Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.