IntPtr.Addition(IntPtr, Int32) Operator

Definition

Suma un desplazamiento al valor de un puntero.Adds an offset to the value of a pointer.

public:
 static IntPtr operator +(IntPtr pointer, int offset);
public static IntPtr operator + (IntPtr pointer, int offset);
static member ( + ) : nativeint * int -> nativeint
Public Shared Operator + (pointer As IntPtr, offset As Integer) As IntPtr

Parameters

pointer
IntPtr

Puntero al que se va a sumar el desplazamiento.The pointer to add the offset to.

offset
Int32

Desplazamiento que se va a sumar.The offset to add.

Returns

IntPtr

Nuevo puntero que es el resultado de sumar offset a pointer.A new pointer that reflects the addition of offset to pointer.

Remarks

El método Addition define la operación de suma para los objetos IntPtr.The Addition method defines the addition operation for IntPtr objects. Permite el código como el siguiente.It enables code such as the following.

int[] arr = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
unsafe {
   fixed(int* parr = arr)
   {
       IntPtr ptr = new IntPtr(parr);
       for (int ctr = 0; ctr < arr.Length; ctr++)
       {
          IntPtr newPtr = ptr + ctr * sizeof(Int32);
          Console.Write("{0}   ", Marshal.ReadInt32(newPtr));
       }
   }
}
// The example displays the following output:
//       2   4   6   8   10   12   14   16   18   20
Dim arr() As Integer = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20 }
Dim ptr As IntPtr = Marshal.UnsafeAddrOfPinnedArrayElement(arr, 0)
For ctr As Integer = 0 To arr.Length - 1
   Dim newPtr As IntPtr = ptr + ctr * Len(arr(0))
   Console.WriteLine("{0}   ", Marshal.ReadInt32(newPtr))
Next
' The example displays the following output:
'       2   4   6   8   10   12   14   16   18   20

Los lenguajes que no admiten operadores personalizados pueden llamar al método Add en su lugar.Languages that do not support custom operators can call the Add method instead.

La operación de suma no inicia una excepción si el resultado es demasiado grande para representarse como un puntero en la plataforma especificada.The addition operation does not throw an exception if the result is too large to represent as a pointer on the specified platform. En su lugar, se realiza en un contexto no comprobado.Instead, it is performed in an unchecked context.

El método equivalente para este operador es IntPtr.Add(IntPtr, Int32)The equivalent method for this operator is IntPtr.Add(IntPtr, Int32)

Applies to

See also