Unsafe.Subtract メソッド

定義

オーバーロード

名前 説明
Subtract<T>(Void*, Int32)

指定されたアンマネージ ポインターから要素オフセットを減算します。

Subtract<T>(T, Int32)

指定されたマネージド ポインターからオフセットを減算します。

Subtract<T>(T, IntPtr)

指定されたマネージド ポインターから要素オフセットを減算します。

Subtract<T>(T, UIntPtr)

指定されたマネージド ポインターから要素オフセットを減算します。

Subtract<T>(Void*, Int32)

ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs

重要

この API は CLS 準拠ではありません。

指定されたアンマネージ ポインターから要素オフセットを減算します。

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

型パラメーター

T

サイズが elementOffsetのスケール ファクターとして使用される型。

パラメーター

source
Void*

オフセットを減算するアンマネージ ポインター。

elementOffset
Int32

減算するオフセット。

返品

Void*

ソース ポインターからの指定されたオフセットの減算を反映する新しいアンマネージ ポインター。

属性

注釈

elementOffset パラメーターは、source ポインターから削除するT サイズの要素の数 (バイト数ではありません) です。 たとえば、ソース ポインター ptr を指定すると、 Unsafe.Subtract<int>(ptr, 20) 呼び出しは、 ptr の前にアドレスが 80 バイト (= 要素あたり 20 要素 * 4 バイト) を指す新しいポインターを返します。

elementOffsetがハードコーディングされたリテラルではなく計算値である場合、呼び出し元は整数オーバーフローの可能性を考慮する必要があります。 たとえば、呼び出しUnsafe.Subtract<int>(ptr, a * b)では、呼び出し元は中間値a * bInt32の境界をオーバーフローしないようにする必要があります。

適用対象

Subtract<T>(T, Int32)

ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs

指定されたマネージド ポインターからオフセットを減算します。

public:
generic <typename T>
 static T % Subtract(T % source, int elementOffset);
public static ref T Subtract<T>(ref T source, int elementOffset) where T : allows ref struct;
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

型パラメーター

T

マネージド ポインターの要素型。

パラメーター

source
T

オフセットを減算するマネージド ポインター。

elementOffset
Int32

減算するオフセット。

返品

T

ソース ポインターからの指定されたオフセットの減算を反映する新しいマネージド ポインター。

注釈

elementOffset パラメーターは、source ポインターから減算するTサイズの要素の数 (バイト数ではありません) です。 たとえば、ref int型のソース ポインター ptr を指定すると、Unsafe.Subtract<int>(ref ptr, 20)呼び出しは、ptr の前にアドレスが 80 バイト (= 要素あたり 20 要素 * 4 バイト) を指す新しいポインターを返します。

elementOffsetがハードコーディングされたリテラルではなく計算値である場合、呼び出し元は整数オーバーフローの可能性を考慮する必要があります。 たとえば、呼び出しUnsafe.Subtract<int>(ref ptr, a * b)では、呼び出し元は中間値a * bInt32の境界をオーバーフローしないようにする必要があります。

適用対象

Subtract<T>(T, IntPtr)

ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs

指定されたマネージド ポインターから要素オフセットを減算します。

public:
generic <typename T>
 static T % Subtract(T % source, IntPtr elementOffset);
public static ref T Subtract<T>(ref T source, IntPtr elementOffset) where T : allows ref struct;
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

型パラメーター

T

マネージド ポインターの要素型。

パラメーター

source
T

オフセットを減算するマネージド ポインター。

elementOffset
IntPtr

nativeint

減算するオフセット。

返品

T

ソース ポインターからの指定されたオフセットの減算を反映する新しいマネージド ポインター。

注釈

elementOffset パラメーターは、source ポインターから減算するTサイズの要素の数 (バイト数ではありません) です。 たとえば、ref int型のソース ポインター ptr を指定すると、Unsafe.Subtract<int>(ref ptr, (nint)20)呼び出しは、ptr の前にアドレスが 80 バイト (= 要素あたり 20 要素 * 4 バイト) を指す新しいポインターを返します。

elementOffsetがハードコーディングされたリテラルではなく計算値である場合、呼び出し元は整数オーバーフローの可能性を考慮する必要があります。 たとえば、呼び出しUnsafe.Subtract<int>(ref ptr, a * b)では、呼び出し元は中間値a * bIntPtrの境界をオーバーフローしないようにする必要があります。

適用対象

Subtract<T>(T, UIntPtr)

ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs
ソース:
Unsafe.cs

重要

この API は CLS 準拠ではありません。

指定されたマネージド ポインターから要素オフセットを減算します。

public:
generic <typename T>
 static T % Subtract(T % source, UIntPtr elementOffset);
[System.CLSCompliant(false)]
public static ref T Subtract<T>(ref T source, UIntPtr elementOffset) where T : allows ref struct;
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);
[<System.CLSCompliant(false)>]
static member Subtract : 'T * unativeint -> 'T
static member Subtract : 'T * unativeint -> 'T
Public Shared Function Subtract(Of T) (ByRef source As T, elementOffset As UIntPtr) As T

型パラメーター

T

マネージド ポインターの要素型。

パラメーター

source
T

オフセットを減算するマネージド ポインター。

elementOffset
UIntPtr

nuint

unativeint

減算するオフセット。

返品

T

ソース ポインターからの指定されたオフセットの減算を反映する新しいマネージド ポインター。

属性

注釈

elementOffset パラメーターは、source ポインターから減算するTサイズの要素の数 (バイト数ではありません) です。 たとえば、ref int型のソース ポインター ptr を指定すると、Unsafe.Subtract<int>(ref ptr, (nuint)20)呼び出しは、ptr の前にアドレスが 80 バイト (= 要素あたり 20 要素 * 4 バイト) を指す新しいポインターを返します。

elementOffsetがハードコーディングされたリテラルではなく計算値である場合、呼び出し元は整数オーバーフローの可能性を考慮する必要があります。 たとえば、呼び出しUnsafe.Subtract<int>(ref ptr, a * b)では、呼び出し元は中間値a * bUIntPtrの境界をオーバーフローしないようにする必要があります。

適用対象