Compartir a través de


Unsafe.Subtract Método

Definición

Sobrecargas

Subtract<T>(Void*, Int32)

Resta un desplazamiento de elemento del puntero no administrado especificado.

Subtract<T>(T, Int32)

Resta un desplazamiento del puntero administrado especificado.

Subtract<T>(T, IntPtr)

Resta un desplazamiento de elemento del puntero administrado especificado.

Subtract<T>(T, UIntPtr)

Resta un desplazamiento de elemento del puntero administrado especificado.

Subtract<T>(Void*, Int32)

Source:
Unsafe.cs
Source:
Unsafe.cs
Source:
Unsafe.cs

Importante

Esta API no es conforme a CLS.

Resta un desplazamiento de elemento del puntero no administrado especificado.

public:
generic <typename T>
 static void* Subtract(void* source, int elementOffset);
public static void* Subtract<T> (void* source, int elementOffset);
[System.CLSCompliant(false)]
public static void* Subtract<T> (void* source, int elementOffset);
static member Subtract : nativeptr<unit> * int -> nativeptr<unit>
[<System.CLSCompliant(false)>]
static member Subtract : nativeptr<unit> * int -> nativeptr<unit>

Parámetros de tipo

T

Tipo cuyo tamaño se usará como factor de escala para elementOffset.

Parámetros

source
Void*

Puntero no administrado del que se va a restar el desplazamiento.

elementOffset
Int32

Desplazamiento que se va a restar.

Devoluciones

Void*

Nuevo puntero no administrado que refleja la resta del desplazamiento especificado del puntero de origen.

Atributos

Comentarios

El elementOffset parámetro es el número de elementos de Ttamaño (no bytes) que se van a quitar del source puntero. Por ejemplo, dado un puntero de origen ptr, la llamada Unsafe.Subtract<int>(ptr, 20) devolverá un nuevo puntero cuyos puntos de dirección 80 bytes (= 20 elementos * 4 bytes por elemento) antes de ptr.

Si elementOffset es un valor calculado en lugar de un literal codificado de forma rígida, los llamadores deben considerar la posibilidad de desbordamiento entero. Por ejemplo, en la llamada Unsafe.Subtract<int>(ptr, a * b)a , el llamador debe asegurarse de que el valor a * b intermedio no desborda los límites de Int32.

Se aplica a

Subtract<T>(T, Int32)

Source:
Unsafe.cs
Source:
Unsafe.cs
Source:
Unsafe.cs

Resta un desplazamiento del puntero administrado especificado.

public:
generic <typename T>
 static T % Subtract(T % source, int elementOffset);
public static ref T Subtract<T> (ref T source, int elementOffset);
static member Subtract : 'T * int -> 'T
Public Shared Function Subtract(Of T) (ByRef source As T, elementOffset As Integer) As T

Parámetros de tipo

T

Tipo elemental del puntero administrado.

Parámetros

source
T

Puntero administrado del que se va a restar el desplazamiento.

elementOffset
Int32

Desplazamiento que se va a restar.

Devoluciones

T

Nuevo puntero administrado que refleja la resta del desplazamiento especificado del puntero de origen.

Comentarios

El elementOffset parámetro es el número de Telementos de tamaño (no bytes) que se van a restar del source puntero. Por ejemplo, dado un puntero de origen ptr de tipo ref int, la llamada Unsafe.Subtract<int>(ref ptr, 20) devolverá un nuevo puntero cuyos puntos de dirección 80 bytes (= 20 elementos * 4 bytes por elemento) antes de ptr.

Si elementOffset es un valor calculado en lugar de un literal codificado de forma rígida, los llamadores deben considerar la posibilidad de desbordamiento entero. Por ejemplo, en la llamada Unsafe.Subtract<int>(ref ptr, a * b)a , el llamador debe asegurarse de que el valor a * b intermedio no desborda los límites de Int32.

Se aplica a

Subtract<T>(T, IntPtr)

Source:
Unsafe.cs
Source:
Unsafe.cs
Source:
Unsafe.cs

Resta un desplazamiento de elemento del puntero administrado especificado.

public:
generic <typename T>
 static T % Subtract(T % source, IntPtr elementOffset);
public static ref T Subtract<T> (ref T source, IntPtr elementOffset);
static member Subtract : 'T * nativeint -> 'T
Public Shared Function Subtract(Of T) (ByRef source As T, elementOffset As IntPtr) As T

Parámetros de tipo

T

Tipo elemental del puntero administrado.

Parámetros

source
T

Puntero administrado del que se va a restar el desplazamiento.

elementOffset
IntPtr

nativeint

Desplazamiento que se va a restar.

Devoluciones

T

Nuevo puntero administrado que refleja la resta del desplazamiento especificado del puntero de origen.

Comentarios

El elementOffset parámetro es el número de Telementos de tamaño (no bytes) que se van a restar del source puntero. Por ejemplo, dado un puntero de origen ptr de tipo ref int, la llamada Unsafe.Subtract<int>(ref ptr, (nint)20) devolverá un nuevo puntero cuyos puntos de dirección 80 bytes (= 20 elementos * 4 bytes por elemento) antes de ptr.

Si elementOffset es un valor calculado en lugar de un literal codificado de forma rígida, los llamadores deben considerar la posibilidad de desbordamiento entero. Por ejemplo, en la llamada Unsafe.Subtract<int>(ref ptr, a * b)a , el llamador debe asegurarse de que el valor a * b intermedio no desborda los límites de IntPtr.

Se aplica a

Subtract<T>(T, UIntPtr)

Source:
Unsafe.cs
Source:
Unsafe.cs
Source:
Unsafe.cs

Importante

Esta API no es conforme a CLS.

Resta un desplazamiento de elemento del puntero administrado especificado.

public:
generic <typename T>
 static T % Subtract(T % source, UIntPtr elementOffset);
public static ref T Subtract<T> (ref T source, nuint elementOffset);
[System.CLSCompliant(false)]
public static ref T Subtract<T> (ref T source, UIntPtr elementOffset);
static member Subtract : 'T * unativeint -> 'T
[<System.CLSCompliant(false)>]
static member Subtract : 'T * unativeint -> 'T
Public Shared Function Subtract(Of T) (ByRef source As T, elementOffset As UIntPtr) As T

Parámetros de tipo

T

Tipo elemental del puntero administrado.

Parámetros

source
T

Puntero administrado del que se va a restar el desplazamiento.

elementOffset
UIntPtr

nuint

unativeint

Desplazamiento que se va a restar.

Devoluciones

T

Nuevo puntero administrado que refleja la resta del desplazamiento especificado del puntero de origen.

Atributos

Comentarios

El elementOffset parámetro es el número de Telementos de tamaño (no bytes) que se van a restar del source puntero. Por ejemplo, dado un puntero de origen ptr de tipo ref int, la llamada Unsafe.Subtract<int>(ref ptr, (nuint)20) devolverá un nuevo puntero cuyos puntos de dirección 80 bytes (= 20 elementos * 4 bytes por elemento) antes de ptr.

Si elementOffset es un valor calculado en lugar de un literal codificado de forma rígida, los llamadores deben considerar la posibilidad de desbordamiento entero. Por ejemplo, en la llamada Unsafe.Subtract<int>(ref ptr, a * b)a , el llamador debe asegurarse de que el valor a * b intermedio no desborda los límites de UIntPtr.

Se aplica a