次の方法で共有


Unsafe.Add メソッド

定義

オーバーロード

Add<T>(Void*, Int32)

指定されたアンマネージ ポインターに要素オフセットを追加します。

Add<T>(T, Int32)

指定されたマネージド ポインターにオフセットを追加します。

Add<T>(T, IntPtr)

指定されたマネージド ポインターに要素オフセットを追加します。

Add<T>(T, UIntPtr)

指定されたマネージド ポインターに要素オフセットを追加します。

Add<T>(Void*, Int32)

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

重要

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

指定されたアンマネージ ポインターに要素オフセットを追加します。

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

型パラメーター

T

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

パラメーター

source
Void*

オフセットを追加するアンマネージド ポインター。

elementOffset
Int32

加算するオフセット。

戻り値

Void*

指定したオフセットのソース ポインターへの追加を反映する新しいアンマネージド ポインター。

属性

注釈

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

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

適用対象

Add<T>(T, Int32)

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

指定されたマネージド ポインターにオフセットを追加します。

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

型パラメーター

T

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

パラメーター

source
T

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

elementOffset
Int32

加算するオフセット。

戻り値

T

指定したオフセットのソース ポインターへの追加を反映する新しいマネージド ポインター。

注釈

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

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

適用対象

Add<T>(T, IntPtr)

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

指定されたマネージド ポインターに要素オフセットを追加します。

public:
generic <typename T>
 static T % Add(T % source, IntPtr elementOffset);
public static ref T Add<T> (ref T source, IntPtr elementOffset);
static member Add : 'T * nativeint -> 'T
Public Shared Function Add(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.Add<int>(ref ptr, (nint)20)ptr を超える 80 バイト (= 20 要素 * 要素あたり 4 バイト) を指す新しいポインター返します。

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

適用対象

Add<T>(T, UIntPtr)

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

重要

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

指定されたマネージド ポインターに要素オフセットを追加します。

public:
generic <typename T>
 static T % Add(T % source, UIntPtr elementOffset);
public static ref T Add<T> (ref T source, nuint elementOffset);
[System.CLSCompliant(false)]
public static ref T Add<T> (ref T source, UIntPtr elementOffset);
static member Add : 'T * unativeint -> 'T
[<System.CLSCompliant(false)>]
static member Add : 'T * unativeint -> 'T
Public Shared Function Add(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.Add<int>(ref ptr, (nuint)20)ptr を超える 80 バイト (= 20 要素 * 要素あたり 4 バイト) を指す新しいポインター返します。

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

適用対象