Unsafe.Add Метод

Определение

Перегрузки

Имя Описание
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) вернет новый указатель, адрес которого равно 80 байтам (= 20 элементов * 4 байта на элемент) за пределами ptr.

Если 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 указатель. Например, учитывая тип ptr исходного ref intуказателя, вызов 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
Исходный код:
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 указатель. Например, учитывая тип ptr исходного ref intуказателя, вызов 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
Исходный код:
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 указатель. Например, учитывая тип ptr исходного ref intуказателя, вызов Unsafe.Add<int>(ref ptr, (nuint)20) вернет новый указатель, адрес которого 80 байт (= 20 элементов * 4 байта на элемент) за пределами ptr.

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

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