語言

Unsafe.Add 方法

定義

多載

名稱 Description
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
來源:
Unsafe.cs
來源:
Unsafe.cs

重要

此 API 不符合 CLS 規範。

為給定的未管理指標加上一個元素偏移量。

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

類型參數

T

該類型大小將作為 的 elementOffset縮放因子。

參數

source
Void*

未管理的指標,用來加上偏移量。

elementOffset
Int32

要加上偏移。

傳回

Void*

一個新的未管理指標,反映將指定的偏移量加入來源指標。

屬性

備註

參數 elementOffset 是 T要加入 source 指標的 -大小元素數(非位元組)。 例如,給定一個來源指標 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
來源:
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) where T : allows ref struct;
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 是 T要加入 source 指標的 -大小元素數(非位元組)。 例如,給定一個類型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
來源:
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) where T : allows ref struct;
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 是 T要加入 source 指標的 -大小元素數(非位元組)。 例如,給定一個類型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
來源:
Unsafe.cs
來源:
Unsafe.cs

重要

此 API 不符合 CLS 規範。

為所管理指標新增一個元素偏移量。

public:
generic <typename T>
 static T % Add(T % source, UIntPtr elementOffset);
[System.CLSCompliant(false)]
public static ref T Add<T>(ref T source, UIntPtr elementOffset) where T : allows ref struct;
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);
[<System.CLSCompliant(false)>]
static member Add : 'T * unativeint -> 'T
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 是 T要加入 source 指標的 -大小元素數(非位元組)。 例如,給定一個類型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範圍。

適用於