Freigeben über


Unsafe.Subtract Methode

Definition

Überlädt

Subtract<T>(Void*, Int32)

Subtrahiert einen Elementoffset vom angegebenen nicht verwalteten Zeiger.

Subtract<T>(T, Int32)

Subtrahiert einen Offset vom angegebenen verwalteten Zeiger.

Subtract<T>(T, IntPtr)

Subtrahiert einen Elementoffset vom angegebenen verwalteten Zeiger.

Subtract<T>(T, UIntPtr)

Subtrahiert einen Elementoffset vom angegebenen verwalteten Zeiger.

Subtract<T>(Void*, Int32)

Quelle:
Unsafe.cs
Quelle:
Unsafe.cs
Quelle:
Unsafe.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Subtrahiert einen Elementoffset vom angegebenen nicht verwalteten Zeiger.

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>

Typparameter

T

Der Typ, dessen Größe als Skalierungsfaktor für elementOffsetverwendet wird.

Parameter

source
Void*

Der nicht verwaltete Zeiger, von dem der Offset subtrahiert werden soll.

elementOffset
Int32

Der Offset, der subtrahiert werden soll.

Gibt zurück

Void*

Ein neuer nicht verwalteter Zeiger, der die Subtraktion des angegebenen Offsets vom Quellzeiger widerspiegelt.

Attribute

Hinweise

Der elementOffset Parameter ist die Anzahl von TElementen mit Größe (nicht Bytes), die aus dem source Zeiger entfernt werden sollen. Bei einem Quellzeiger ptr gibt der Aufruf Unsafe.Subtract<int>(ptr, 20) beispielsweise einen neuen Zeiger zurück, dessen Adresse 80 Bytes (= 20 Elemente * 4 Bytes pro Element) vor ptr zeigt.

Wenn elementOffset ein berechneter Wert anstelle eines hartcodierten Literals ist, sollten Aufrufer die Möglichkeit eines Ganzzahlüberlaufs in Betracht ziehen. Im Aufruf Unsafe.Subtract<int>(ptr, a * b)muss der Aufrufer beispielsweise sicherstellen, dass der Zwischenwert a * b nicht die Grenzen von Int32überläuft.

Gilt für:

Subtract<T>(T, Int32)

Quelle:
Unsafe.cs
Quelle:
Unsafe.cs
Quelle:
Unsafe.cs

Subtrahiert einen Offset vom angegebenen verwalteten Zeiger.

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

Typparameter

T

Der Elementtyp des verwalteten Zeigers.

Parameter

source
T

Der verwaltete Zeiger, von dem der Offset subtrahiert werden soll.

elementOffset
Int32

Der Offset, der subtrahiert werden soll.

Gibt zurück

T

Ein neuer verwalteter Zeiger, der die Subtraktion des angegebenen Offsets vom Quellzeiger widerspiegelt.

Hinweise

Der elementOffset Parameter ist die Anzahl von TElementen mit größe (nicht Bytes), die source vom Zeiger subtrahiert werden sollen. Bei einem Quellzeiger ptr vom Typ ref intgibt der Aufruf Unsafe.Subtract<int>(ref ptr, 20) beispielsweise einen neuen Zeiger zurück, dessen Adresse 80 Bytes (= 20 Elemente * 4 Bytes pro Element) vor ptr zeigt.

Wenn elementOffset ein berechneter Wert anstelle eines hartcodierten Literals ist, sollten Aufrufer die Möglichkeit eines Ganzzahlüberlaufs in Betracht ziehen. Im Aufruf Unsafe.Subtract<int>(ref ptr, a * b)muss der Aufrufer beispielsweise sicherstellen, dass der Zwischenwert a * b nicht die Grenzen von Int32überläuft.

Gilt für:

Subtract<T>(T, IntPtr)

Quelle:
Unsafe.cs
Quelle:
Unsafe.cs
Quelle:
Unsafe.cs

Subtrahiert einen Elementoffset vom angegebenen verwalteten Zeiger.

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

Typparameter

T

Der Elementtyp des verwalteten Zeigers.

Parameter

source
T

Der verwaltete Zeiger, von dem der Offset subtrahiert werden soll.

elementOffset
IntPtr

nativeint

Der Offset, der subtrahiert werden soll.

Gibt zurück

T

Ein neuer verwalteter Zeiger, der die Subtraktion des angegebenen Offsets vom Quellzeiger widerspiegelt.

Hinweise

Der elementOffset Parameter ist die Anzahl von TElementen mit größe (nicht Bytes), die source vom Zeiger subtrahiert werden sollen. Bei einem Quellzeiger ptr vom Typ ref intgibt der Aufruf Unsafe.Subtract<int>(ref ptr, (nint)20) beispielsweise einen neuen Zeiger zurück, dessen Adresse 80 Bytes (= 20 Elemente * 4 Bytes pro Element) vor ptr zeigt.

Wenn elementOffset ein berechneter Wert anstelle eines hartcodierten Literals ist, sollten Aufrufer die Möglichkeit eines Ganzzahlüberlaufs in Betracht ziehen. Im Aufruf Unsafe.Subtract<int>(ref ptr, a * b)muss der Aufrufer beispielsweise sicherstellen, dass der Zwischenwert a * b nicht die Grenzen von IntPtrüberläuft.

Gilt für:

Subtract<T>(T, UIntPtr)

Quelle:
Unsafe.cs
Quelle:
Unsafe.cs
Quelle:
Unsafe.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Subtrahiert einen Elementoffset vom angegebenen verwalteten Zeiger.

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

Typparameter

T

Der Elementtyp des verwalteten Zeigers.

Parameter

source
T

Der verwaltete Zeiger, von dem der Offset subtrahiert werden soll.

elementOffset
UIntPtr

nuint

unativeint

Der Offset, der subtrahiert werden soll.

Gibt zurück

T

Ein neuer verwalteter Zeiger, der die Subtraktion des angegebenen Offsets vom Quellzeiger widerspiegelt.

Attribute

Hinweise

Der elementOffset Parameter ist die Anzahl von TElementen mit größe (nicht Bytes), die source vom Zeiger subtrahiert werden sollen. Bei einem Quellzeiger ptr vom Typ ref intgibt der Aufruf Unsafe.Subtract<int>(ref ptr, (nuint)20) beispielsweise einen neuen Zeiger zurück, dessen Adresse 80 Bytes (= 20 Elemente * 4 Bytes pro Element) vor ptr zeigt.

Wenn elementOffset ein berechneter Wert anstelle eines hartcodierten Literals ist, sollten Aufrufer die Möglichkeit eines Ganzzahlüberlaufs in Betracht ziehen. Im Aufruf Unsafe.Subtract<int>(ref ptr, a * b)muss der Aufrufer beispielsweise sicherstellen, dass der Zwischenwert a * b nicht die Grenzen von UIntPtrüberläuft.

Gilt für: