Llegeix en anglès

Comparteix a través de


IntPtr.Subtraction(IntPtr, Int32) Operador

Definición

Resta un desplazamiento de un entero con signo.

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

Parámetros

pointer
IntPtr

Entero con signo del que se va a restar el desplazamiento.

offset
Int32

Desplazamiento que se va a restar.

Devoluciones

IntPtr

Nuevo entero con signo que refleja la resta de offset de pointer.

Comentarios

El Subtraction método define la operación de resta para IntPtr los objetos . Habilita código como el siguiente.

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

Los lenguajes que no admiten operadores personalizados pueden llamar al Subtract método en su lugar.

La operación de resta no produce una excepción si el resultado es demasiado pequeño para representarlo como un entero con signo en el proceso de ejecución. En su lugar, se realiza en un contexto no comprobado.

En C# a partir de la versión 11 y al tener como destino el entorno de ejecución de .NET 7 o posterior, esta API solo es accesible a través de reflexión. El lenguaje reconoce directamente el operador de resta y seguirá el comportamiento normal del lenguaje para las operaciones de resta, incluido el desbordamiento en un checked contexto si el resultado es demasiado pequeño para representar.

El método equivalente para este operador es IntPtr.Subtract(IntPtr, Int32)

Se aplica a

Producte 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

Consulte también