共用方式為


Unsafe.Subtract 方法

定義

多載

Subtract<T>(Void*, Int32)

從指定的 Unmanaged 指標減去專案位移。

Subtract<T>(T, Int32)

從指定的Managed指標減去位移。

Subtract<T>(T, IntPtr)

從指定的Managed指標減去專案位移。

Subtract<T>(T, UIntPtr)

從指定的Managed指標減去專案位移。

Subtract<T>(Void*, Int32)

來源:
Unsafe.cs
來源:
Unsafe.cs
來源:
Unsafe.cs

重要

此 API 不符合 CLS 規範。

從指定的 Unmanaged 指標減去專案位移。

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>

類型參數

T

其大小將做為 的縮放比例的類型 elementOffset

參數

source
Void*

要減去位移的 Unmanaged 指標。

elementOffset
Int32

要減去的位移。

傳回

Void*

新的 Unmanaged 指標,反映來源指標中指定位移的減法。

屬性

備註

參數elementOffset是要從source指標中移除的 T-sized 元素數目, (不是位元節數) 。 例如,假設來源指標 ptr,呼叫 Unsafe.Subtract<int>(ptr, 20) 會傳回新的指標,其位址點為 80 個字節 (= 20 個專案 * 每個元素 4 個字節,) ptr 之前。

如果 elementOffset 是計算值,而不是硬式編碼常值,呼叫端應該考慮整數溢位的可能性。 例如,在呼叫 中,呼叫 Unsafe.Subtract<int>(ptr, a * b)端必須確定中繼值 a * b 不會溢位 的界限 Int32

適用於

Subtract<T>(T, Int32)

來源:
Unsafe.cs
來源:
Unsafe.cs
來源:
Unsafe.cs

從指定的Managed指標減去位移。

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

類型參數

T

Managed 指標的專案型別。

參數

source
T

要減去位移的Managed指標。

elementOffset
Int32

要減去的位移。

傳回

T

新的 Managed 指標,反映來源指標中指定位移的減法。

備註

參數elementOffset是 (不是從指標減source去的T位元組數) 。 例如,假設類型為 的來源指標 ptrref int,呼叫Unsafe.Subtract<int>(ref ptr, 20)會傳回新的指標,其位址點為 80 個字節 (= 20 個專案 * 每個元素 4 個字節,) ptr 之前。

如果 elementOffset 是計算值,而不是硬式編碼常值,呼叫端應該考慮整數溢位的可能性。 例如,在呼叫 中,呼叫 Unsafe.Subtract<int>(ref ptr, a * b)端必須確定中繼值 a * b 不會溢位 的界限 Int32

適用於

Subtract<T>(T, IntPtr)

來源:
Unsafe.cs
來源:
Unsafe.cs
來源:
Unsafe.cs

從指定的Managed指標減去專案位移。

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

類型參數

T

Managed 指標的專案型別。

參數

source
T

要減去位移的Managed指標。

elementOffset
IntPtr

nativeint

要減去的位移。

傳回

T

新的 Managed 指標,反映來源指標中指定位移的減法。

備註

參數elementOffset是 (不是從指標減source去的T位元組數) 。 例如,假設類型為 的來源指標 ptrref int,呼叫Unsafe.Subtract<int>(ref ptr, (nint)20)會傳回新的指標,其位址點為 80 個字節 (= 20 個專案 * 每個元素 4 個字節,) ptr 之前。

如果 elementOffset 是計算值,而不是硬式編碼常值,呼叫端應該考慮整數溢位的可能性。 例如,在呼叫 中,呼叫 Unsafe.Subtract<int>(ref ptr, a * b)端必須確定中繼值 a * b 不會溢位 的界限 IntPtr

適用於

Subtract<T>(T, UIntPtr)

來源:
Unsafe.cs
來源:
Unsafe.cs
來源:
Unsafe.cs

重要

此 API 不符合 CLS 規範。

從指定的Managed指標減去專案位移。

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

類型參數

T

Managed 指標的專案型別。

參數

source
T

要減去位移的Managed指標。

elementOffset
UIntPtr

nuint

unativeint

要減去的位移。

傳回

T

新的 Managed 指標,反映來源指標中指定位移的減法。

屬性

備註

參數elementOffset是 (不是從指標減source去的T位元組數) 。 例如,假設類型為 的來源指標 ptrref int,呼叫Unsafe.Subtract<int>(ref ptr, (nuint)20)會傳回新的指標,其位址點為 80 個字節 (= 20 個專案 * 每個元素 4 個字節,) ptr 之前。

如果 elementOffset 是計算值,而不是硬式編碼常值,呼叫端應該考慮整數溢位的可能性。 例如,在呼叫 中,呼叫 Unsafe.Subtract<int>(ref ptr, a * b)端必須確定中繼值 a * b 不會溢位 的界限 UIntPtr

適用於