다음을 통해 공유


Unsafe.Add 메서드

정의

오버로드

Add<T>(Void*, Int32)

지정된 관리되지 않는 포인터에 요소 오프셋을 추가합니다.

Add<T>(T, Int32)

지정된 관리되는 포인터에 오프셋을 추가합니다.

Add<T>(T, IntPtr)

지정된 관리되는 포인터에 요소 오프셋을 추가합니다.

Add<T>(T, UIntPtr)

지정된 관리되는 포인터에 요소 오프셋을 추가합니다.

Add<T>(Void*, Int32)

Source:
Unsafe.cs
Source:
Unsafe.cs
Source:
Unsafe.cs

중요

이 API는 CLS 규격이 아닙니다.

지정된 관리되지 않는 포인터에 요소 오프셋을 추가합니다.

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*

오프셋을 추가할 관리되지 않는 포인터입니다.

elementOffset
Int32

더할 오프셋입니다.

반환

Void*

원본 포인터에 지정된 오프셋을 추가하는 것을 반영하는 관리되지 않는 새 포인터입니다.

특성

설명

elementOffset 매개 변수는 포인터에 추가할 source 크기가 큰 요소(바이트가 아님)의 T수입니다. 예를 들어 원본 포인터 ptr이 지정된 경우 호출 Unsafe.Add<int>(ptr, 20) 은 주소가 ptr을 넘어 80바이트(= 20개 요소 * 요소당 4바이트)를 가리키는 새 포인터를 반환합니다.

가 하드 코딩된 리터럴이 아닌 계산 값인 경우 elementOffset 호출자는 정수 오버플로의 가능성을 고려해야 합니다. 예를 들어 호출 Unsafe.Add<int>(ptr, a * b)에서 호출자는 중간 값 a * b 이 의 Int32범위를 오버플로하지 않도록 해야 합니다.

적용 대상

Add<T>(T, Int32)

Source:
Unsafe.cs
Source:
Unsafe.cs
Source:
Unsafe.cs

지정된 관리되는 포인터에 오프셋을 추가합니다.

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

관리되는 포인터의 요소 형식입니다.

매개 변수

source
T

오프셋을 추가할 관리되는 포인터입니다.

elementOffset
Int32

더할 오프셋입니다.

반환

T

원본 포인터에 지정된 오프셋을 추가하는 것을 반영하는 새 관리형 포인터입니다.

설명

elementOffset 매개 변수는 포인터에 추가할 source 크기가 큰 요소(바이트가 아님)의 T수입니다. 예를 들어 형식ref int의 소스 포인터 ptr을 지정하면 호출 Unsafe.Add<int>(ref ptr, 20) 은 주소가 ptr 이외의 80바이트(= 20개 요소 * 요소당 4바이트)를 가리키는 새 포인터를 반환합니다.

가 하드 코딩된 리터럴이 아닌 계산 값인 경우 elementOffset 호출자는 정수 오버플로의 가능성을 고려해야 합니다. 예를 들어 호출 Unsafe.Add<int>(ref ptr, a * b)에서 호출자는 중간 값 a * b 이 의 Int32범위를 오버플로하지 않도록 해야 합니다.

적용 대상

Add<T>(T, IntPtr)

Source:
Unsafe.cs
Source:
Unsafe.cs
Source:
Unsafe.cs

지정된 관리되는 포인터에 요소 오프셋을 추가합니다.

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

관리되는 포인터의 요소 형식입니다.

매개 변수

source
T

오프셋을 추가할 관리되는 포인터입니다.

elementOffset
IntPtr

nativeint

더할 오프셋입니다.

반환

T

원본 포인터에 지정된 오프셋을 추가하는 것을 반영하는 새 관리형 포인터입니다.

설명

elementOffset 매개 변수는 포인터에 추가할 source 크기가 큰 요소(바이트가 아님)의 T수입니다. 예를 들어 형식ref int의 소스 포인터 ptr을 지정하면 호출 Unsafe.Add<int>(ref ptr, (nint)20) 은 주소가 ptr 이외의 80바이트(= 20개 요소 * 요소당 4바이트)를 가리키는 새 포인터를 반환합니다.

가 하드 코딩된 리터럴이 아닌 계산 값인 경우 elementOffset 호출자는 정수 오버플로의 가능성을 고려해야 합니다. 예를 들어 호출 Unsafe.Add<int>(ref ptr, a * b)에서 호출자는 중간 값 a * b 이 의 IntPtr범위를 오버플로하지 않도록 해야 합니다.

적용 대상

Add<T>(T, UIntPtr)

Source:
Unsafe.cs
Source:
Unsafe.cs
Source:
Unsafe.cs

중요

이 API는 CLS 규격이 아닙니다.

지정된 관리되는 포인터에 요소 오프셋을 추가합니다.

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

관리되는 포인터의 요소 형식입니다.

매개 변수

source
T

오프셋을 추가할 관리되는 포인터입니다.

elementOffset
UIntPtr

nuint

unativeint

더할 오프셋입니다.

반환

T

원본 포인터에 지정된 오프셋을 추가하는 것을 반영하는 새 관리형 포인터입니다.

특성

설명

elementOffset 매개 변수는 포인터에 추가할 source 크기가 큰 요소(바이트가 아님)의 T수입니다. 예를 들어 형식ref int의 소스 포인터 ptr을 지정하면 호출 Unsafe.Add<int>(ref ptr, (nuint)20) 은 주소가 ptr 이외의 80바이트(= 20개 요소 * 요소당 4바이트)를 가리키는 새 포인터를 반환합니다.

가 하드 코딩된 리터럴이 아닌 계산 값인 경우 elementOffset 호출자는 정수 오버플로의 가능성을 고려해야 합니다. 예를 들어 호출 Unsafe.Add<int>(ref ptr, a * b)에서 호출자는 중간 값 a * b 이 의 UIntPtr범위를 오버플로하지 않도록 해야 합니다.

적용 대상