UIntPtr.Subtract(UIntPtr, Int32) Méthode

Définition

Soustrait un décalage d’un entier non signé.

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

Paramètres

pointer
UIntPtr

unativeint

Entier non signé dont le décalage doit être soustrait.

offset
Int32

Offset à soustraire.

Retours

UIntPtr

unativeint

Nouvel entier non signé qui reflète la soustraction de offset de pointer.

Exemples

L’exemple suivant instancie un IntPtr objet qui pointe vers la fin d’un tableau de dix éléments, puis appelle la Subtract méthode pour itérer les éléments du tableau dans l’ordre inverse.

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

Remarques

La Subtract méthode ne lève pas d’exception si le résultat est trop petit pour être représenté sous la forme d’un entier non signé dans le processus en cours d’exécution. Au lieu de cela, l’opération de soustraction est effectuée dans un contexte non vérifié.

Les langages qui ne prennent pas en charge la surcharge d’opérateur ou les opérateurs personnalisés peuvent utiliser cette méthode pour soustraire un décalage de la valeur d’un pointeur.

S’applique à

Voir aussi