Unsafe.Add 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
Add<T>(Void*, Int32) |
將專案位移新增至指定的 Unmanaged 指標。 |
Add<T>(T, Int32) |
將位移加入至指定的Managed指標。 |
Add<T>(T, IntPtr) |
將專案位移加入至指定的Managed指標。 |
Add<T>(T, UIntPtr) |
將專案位移加入至指定的Managed指標。 |
Add<T>(Void*, Int32)
- 來源:
- Unsafe.cs
- 來源:
- Unsafe.cs
- 來源:
- Unsafe.cs
重要
此 API 不符合 CLS 規範。
將專案位移新增至指定的 Unmanaged 指標。
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*
要加入位移的 Unmanaged 指標。
- elementOffset
- Int32
要加上的位移。
傳回
新的 Unmanaged 指標,反映將指定的位移新增至來源指標。
- 屬性
備註
參數elementOffset
是要加入至source
指標 (非) 位元組 (大小元素的數目T
。 例如,假設來源指標 ptr,呼叫 Unsafe.Add<int>(ptr, 20)
會傳回新的指標,其位址點為 80 個字節, (= 20 個元素 * 每個元素 4 個字節,) ptr 以外。
如果 elementOffset
是計算值,而不是硬式編碼常值,呼叫端應該考慮整數溢位的可能性。 例如,在呼叫 中,呼叫 Unsafe.Add<int>(ptr, a * b)
端必須確保中繼值 a * b
不會溢位 的 Int32
界限。
適用於
Add<T>(T, Int32)
- 來源:
- Unsafe.cs
- 來源:
- Unsafe.cs
- 來源:
- Unsafe.cs
將位移加入至指定的Managed指標。
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
Managed 指標的元素類型。
參數
- source
- T
要加入位移的Managed指標。
- elementOffset
- Int32
要加上的位移。
傳回
新的 Managed 指標,反映將指定的位移新增至來源指標。
備註
參數elementOffset
是要加入至source
指標 (非) 位元組 (大小元素的數目T
。 例如,假設有類型的ref int
來源指標 ptr,呼叫Unsafe.Add<int>(ref ptr, 20)
會傳回新的指標,其位址點為 80 個字節, (= 20 個元素 * 每個元素 4 個字節,) ptr 以外。
如果 elementOffset
是計算值,而不是硬式編碼常值,呼叫端應該考慮整數溢位的可能性。 例如,在呼叫 中,呼叫 Unsafe.Add<int>(ref ptr, a * b)
端必須確保中繼值 a * b
不會溢位 的 Int32
界限。
適用於
Add<T>(T, IntPtr)
- 來源:
- Unsafe.cs
- 來源:
- Unsafe.cs
- 來源:
- Unsafe.cs
將專案位移加入至指定的Managed指標。
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
Managed 指標的元素類型。
參數
- source
- T
要加入位移的Managed指標。
- elementOffset
-
IntPtr
nativeint
要加上的位移。
傳回
新的 Managed 指標,反映將指定的位移新增至來源指標。
備註
參數elementOffset
是要加入至source
指標 (非) 位元組 (大小元素的數目T
。 例如,假設有類型的ref int
來源指標 ptr,呼叫Unsafe.Add<int>(ref ptr, (nint)20)
會傳回新的指標,其位址點為 80 個字節, (= 20 個元素 * 每個元素 4 個字節,) ptr 以外。
如果 elementOffset
是計算值,而不是硬式編碼常值,呼叫端應該考慮整數溢位的可能性。 例如,在呼叫 中,呼叫 Unsafe.Add<int>(ref ptr, a * b)
端必須確保中繼值 a * b
不會溢位 的 IntPtr
界限。
適用於
Add<T>(T, UIntPtr)
- 來源:
- Unsafe.cs
- 來源:
- Unsafe.cs
- 來源:
- Unsafe.cs
重要
此 API 不符合 CLS 規範。
將專案位移加入至指定的Managed指標。
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
Managed 指標的元素類型。
參數
- source
- T
要加入位移的Managed指標。
- elementOffset
-
UIntPtr
nuint
unativeint
要加上的位移。
傳回
新的 Managed 指標,反映將指定的位移新增至來源指標。
- 屬性
備註
參數elementOffset
是要加入至source
指標 (非) 位元組 (大小元素的數目T
。 例如,假設有類型的ref int
來源指標 ptr,呼叫Unsafe.Add<int>(ref ptr, (nuint)20)
會傳回新的指標,其位址點為 80 個字節, (= 20 個元素 * 每個元素 4 個字節,) ptr 以外。
如果 elementOffset
是計算值,而不是硬式編碼常值,呼叫端應該考慮整數溢位的可能性。 例如,在呼叫 中,呼叫 Unsafe.Add<int>(ref ptr, a * b)
端必須確保中繼值 a * b
不會溢位 的 UIntPtr
界限。