Lire en anglais

Partager via


IntPtr.Subtraction(IntPtr, Int32) Opérateur

Définition

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

C#
public static IntPtr operator -(IntPtr pointer, int offset);

Paramètres

pointer
IntPtr

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

offset
Int32

Offset à soustraire.

Retours

IntPtr

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

Remarques

La Subtraction méthode définit l’opération de soustraction pour les IntPtr objets. Il active le code tel que le suivant.

C#
int[] arr = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
unsafe {
   fixed(int* parr = &arr[arr.GetUpperBound(0)])
   {
      IntPtr ptr = new IntPtr(parr);
      for (int ctr = 0; ctr <= arr.GetUpperBound(0); ctr++)
      {
         IntPtr newPtr = ptr - ctr * sizeof(Int32);
         Console.Write("{0}   ", Marshal.ReadInt32(newPtr));
      }
   }
}
// The example displays the following output:
//       20   18   16   14   12   10   8   6   4   2

Les langues qui ne prennent pas en charge les opérateurs personnalisés peuvent appeler la méthode à la Subtract place.

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

En C# à partir de la version 11 et lors du ciblage du runtime .NET 7 ou ultérieur, cette API n’est accessible que par réflexion. L’opérateur de soustraction est directement reconnu par la langue et suit le comportement de langage normal pour les opérations de soustraction, y compris le dépassement de capacité dans un checked contexte si le résultat est trop petit pour être représenté.

La méthode équivalente pour cet opérateur est IntPtr.Subtract(IntPtr, Int32)

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Voir aussi