Unsafe.Subtract Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
Subtract<T>(Void*, Int32) |
Вычитает смещение элемента из заданного неуправляемого указателя. |
Subtract<T>(T, Int32) |
Вычитает смещение из заданного управляемого указателя. |
Subtract<T>(T, IntPtr) |
Вычитает смещение элемента из заданного управляемого указателя. |
Subtract<T>(T, UIntPtr) |
Вычитает смещение элемента из заданного управляемого указателя. |
Subtract<T>(Void*, Int32)
- Исходный код:
- Unsafe.cs
- Исходный код:
- Unsafe.cs
- Исходный код:
- Unsafe.cs
Важно!
Этот API несовместим с CLS.
Вычитает смещение элемента из заданного неуправляемого указателя.
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*
Неуправляемый указатель, из который вычитается смещение.
- elementOffset
- Int32
Вычитаемое смещение.
Возвращаемое значение
Новый неуправляемый указатель, отражающий вычитание указанного смещения из исходного указателя.
- Атрибуты
Комментарии
Параметр elementOffset
— это количество T
элементов размера (а не байтов), удаляемых из указателя source
. Например, при использовании исходного указателя 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
Вычитает смещение из заданного управляемого указателя.
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
Элементный тип управляемого указателя.
Параметры
- source
- T
Управляемый указатель, из который вычитается смещение.
- elementOffset
- Int32
Вычитаемое смещение.
Возвращаемое значение
Новый управляемый указатель, отражающий вычитание указанного смещения из исходного указателя.
Комментарии
Параметр elementOffset
— это количество T
элементов размера (а не байтов), вычитаемых из указателя source
. Например, если указать исходный указатель ptr типа ref 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
Вычитает смещение элемента из заданного управляемого указателя.
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
Элементный тип управляемого указателя.
Параметры
- source
- T
Управляемый указатель, из который вычитается смещение.
- elementOffset
-
IntPtr
nativeint
Вычитаемое смещение.
Возвращаемое значение
Новый управляемый указатель, отражающий вычитание указанного смещения из исходного указателя.
Комментарии
Параметр elementOffset
— это количество T
элементов размера (а не байтов), вычитаемых из указателя source
. Например, если указать исходный указатель ptr типа ref 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.
Вычитает смещение элемента из заданного управляемого указателя.
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
Элементный тип управляемого указателя.
Параметры
- source
- T
Управляемый указатель, из который вычитается смещение.
- elementOffset
-
UIntPtr
nuint
unativeint
Вычитаемое смещение.
Возвращаемое значение
Новый управляемый указатель, отражающий вычитание указанного смещения из исходного указателя.
- Атрибуты
Комментарии
Параметр elementOffset
— это количество T
элементов размера (а не байтов), вычитаемых из указателя source
. Например, если указать исходный указатель ptr типа ref int
, вызов Unsafe.Subtract<int>(ref ptr, (nuint)20)
вернет новый указатель, адрес которого указывает 80 байт (= 20 элементов * 4 байта на элемент) перед ptr.
Если elementOffset
является вычисляемым значением, а не жестко заданным литералом, вызывающим абонентам следует учитывать возможность переполнения целочисленного числа. Например, в вызове Unsafe.Subtract<int>(ref ptr, a * b)
вызывающий объект должен убедиться, что промежуточное значение a * b
не переполняет границы UIntPtr
.