Поделиться через


Unsafe.SubtractByteOffset Метод

Определение

Перегрузки

SubtractByteOffset<T>(T, IntPtr)

Вычитает смещение в байтах из заданного управляемого указателя.

SubtractByteOffset<T>(T, UIntPtr)

Вычитает смещение в байтах из заданного управляемого указателя.

SubtractByteOffset<T>(T, IntPtr)

Исходный код:
Unsafe.cs
Исходный код:
Unsafe.cs
Исходный код:
Unsafe.cs

Вычитает смещение в байтах из заданного управляемого указателя.

public:
generic <typename T>
 static T % SubtractByteOffset(T % source, IntPtr byteOffset);
public static ref T SubtractByteOffset<T> (ref T source, IntPtr byteOffset);
static member SubtractByteOffset : 'T * nativeint -> 'T
Public Shared Function SubtractByteOffset(Of T) (ByRef source As T, byteOffset As IntPtr) As T

Параметры типа

T

Элементный тип управляемого указателя.

Параметры

source
T

Управляемый указатель, из который вычитается смещение.

byteOffset
IntPtr

nativeint

Вычитаемое смещение.

Возвращаемое значение

T

Новый управляемый указатель, отражающий вычитание указанного смещения байтов из исходного указателя.

Комментарии

Параметр byteOffset — это количество байтов, удаляемых из указателя source . Например, если задан исходный указатель ptr типа ref int, вызов Unsafe.SubtractByteOffset<int>(ref ptr, 20) вернет новый указатель, адрес которого указывает на 20 байт перед ptr.

Если byteOffset является вычисляемым значением, а не жестко заданным литералом, вызывающим абонентам следует учитывать возможность переполнения целочисленного числа. Например, в вызове Unsafe.SubtractByteOffset<int>(ref ptr, a * b)вызывающий объект должен убедиться, что промежуточное значение a * b не переполняет границы IntPtr.

Применяется к

SubtractByteOffset<T>(T, UIntPtr)

Исходный код:
Unsafe.cs
Исходный код:
Unsafe.cs
Исходный код:
Unsafe.cs

Важно!

Этот API несовместим с CLS.

Вычитает смещение в байтах из заданного управляемого указателя.

public:
generic <typename T>
 static T % SubtractByteOffset(T % source, UIntPtr byteOffset);
public static ref T SubtractByteOffset<T> (ref T source, nuint byteOffset);
[System.CLSCompliant(false)]
public static ref T SubtractByteOffset<T> (ref T source, UIntPtr byteOffset);
static member SubtractByteOffset : 'T * unativeint -> 'T
[<System.CLSCompliant(false)>]
static member SubtractByteOffset : 'T * unativeint -> 'T
Public Shared Function SubtractByteOffset(Of T) (ByRef source As T, byteOffset As UIntPtr) As T

Параметры типа

T

Элементный тип управляемого указателя.

Параметры

source
T

Управляемый указатель, из который вычитается смещение.

byteOffset
UIntPtr

nuint

unativeint

Вычитаемое смещение.

Возвращаемое значение

T

Новый управляемый указатель, отражающий вычитание указанного смещения байтов из исходного указателя.

Атрибуты

Комментарии

Параметр byteOffset — это количество байтов, вычитаемых из указателя source . Например, если задан исходный указатель ptr типа ref int, вызов Unsafe.SubtractByteOffset<int>(ref ptr, (nuint)20) вернет новый указатель, адрес которого указывает на 20 байт перед ptr.

Если byteOffset является вычисляемым значением, а не жестко заданным литералом, вызывающим абонентам следует учитывать возможность переполнения целочисленного числа. Например, в вызове Unsafe.SubtractByteOffset<int>(ref ptr, a * b)вызывающий объект должен убедиться, что промежуточное значение a * b не переполняет границы UIntPtr.

Применяется к