UIntPtr 구조체

정의

Important

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

비트 너비가 포인터와 같은 부호 없는 정수입니다.

public value class UIntPtr
public value class UIntPtr : System::Runtime::Serialization::ISerializable
public value class UIntPtr : IEquatable<UIntPtr>, System::Runtime::Serialization::ISerializable
[System.CLSCompliant(false)]
public struct UIntPtr
[System.CLSCompliant(false)]
[System.Serializable]
public struct UIntPtr : System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct UIntPtr : System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
public struct UIntPtr : System.Runtime.Serialization.ISerializable
[System.CLSCompliant(false)]
public readonly struct UIntPtr : IEquatable<UIntPtr>, System.Runtime.Serialization.ISerializable
[<System.CLSCompliant(false)>]
type unativeint = struct
[<System.CLSCompliant(false)>]
[<System.Serializable>]
type unativeint = struct
    interface ISerializable
[<System.CLSCompliant(false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type unativeint = struct
    interface ISerializable
[<System.CLSCompliant(false)>]
type unativeint = struct
    interface ISerializable
Public Structure UIntPtr
Public Structure UIntPtr
Implements ISerializable
Public Structure UIntPtr
Implements IEquatable(Of UIntPtr), ISerializable
상속
UIntPtr
특성
구현

설명

형식은 UIntPtr 포인터와 크기가 같은 정수로 설계되었습니다. 즉, 이 형식의 인스턴스는 32비트 프로세스에서 32비트, 64비트 프로세스에서는 64비트가 될 것으로 예상됩니다.

이 형식은 UIntPtr 포인터를 지원하는 언어와 포인터를 지원하지 않는 언어 간의 데이터를 참조하는 일반적인 수단으로 사용할 수 있습니다. UIntPtr 개체를 사용하여 핸들을 보관할 수도 있습니다.

Note

포인터 또는 핸들로 사용하는 UIntPtr 것은 오류가 발생하기 쉽고 안전하지 않습니다. 단순히 같은 크기로 인해 포인터 및 핸들의 교환 형식으로 사용할 수 있는 정수 형식입니다. 포인터를 지원하지 않는 언어로 데이터를 전달하는 것과 같은 특정 교환 요구 사항 외에 포인터를 나타내는 데 올바르게 형식화된 포인터를 사용해야 하며 SafeHandle 핸들을 나타내는 데 사용해야 합니다.

이 형식은 .를 ISerializable구현합니다. .NET 5 이상 버전에서 이 형식은 IFormattable 인터페이스도 구현합니다. .NET 7 이상 버전에서 이 형식은 IBinaryInteger<TSelf>, IMinMaxValue<TSelf>IUnsignedNumber<TSelf> 인터페이스도 구현합니다.

버전 9.0부터 시작하는 C#에서 기본 제공 nuint 형식을 사용하여 네이티브 크기의 정수를 정의할 수 있습니다. 이 형식은 내부적으로 형식으로 UIntPtr 표시되며 정수 형식에 적합한 작업 및 변환을 제공합니다. 자세한 내용은 nint 및 nuint 형식을 참조하세요.

C#에서는 버전 11부터 .NET 7 이상 런타임을 대상으로 하는 경우 nuintUIntPtruint 대한 별칭과 동일한 방식으로 UInt32 대한 별칭입니다.

생성자

Name Description
UIntPtr(UInt32)

지정된 32비트 부호 없는 정수로 구조체의 UIntPtr 새 인스턴스를 초기화합니다.

UIntPtr(UInt64)

지정된 64비트 부호 없는 정수 사용을 위한 새 인스턴스 UIntPtr 를 초기화합니다.

UIntPtr(Void*)

지정되지 않은 형식에 대해 지정된 포인터를 사용하는 새 인스턴스 UIntPtr 를 초기화합니다.

필드

Name Description
Zero

0으로 초기화된 부호 없는 정수를 나타내는 읽기 전용 필드입니다.

속성

Name Description
Size

이 인스턴스의 크기를 가져옵니다.

메서드

Name Description
Add(UIntPtr, Int32)

부호 없는 정수에 오프셋을 추가합니다.

Equals(Object)

이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

Subtract(UIntPtr, Int32)

부호 없는 정수에서 오프셋을 뺍니다.

ToPointer()

이 인스턴스의 값을 지정되지 않은 형식으로 포인터로 변환합니다.

ToString()

이 인스턴스의 숫자 값을 해당하는 문자열 표현으로 변환합니다.

ToUInt32()

이 인스턴스의 값을 부호 없는 32비트 정수로 변환합니다.

ToUInt64()

이 인스턴스의 값을 부호 없는 64비트 정수로 변환합니다.

연산자

Name Description
Addition(UIntPtr, Int32)

부호 없는 정수에 오프셋을 추가합니다.

Equality(UIntPtr, UIntPtr)

지정된 두 인스턴스가 같은지 여부를 확인합니다 UIntPtr .

Explicit(UInt32 to UIntPtr)

부호 없는 32비트 정 UIntPtr수의 값을 .로 변환합니다.

Explicit(UInt64 to UIntPtr)

부호 UIntPtr없는 64비트 정수의 값을 으로 변환합니다.

Explicit(UIntPtr to UInt32)

지정된 UIntPtr 값을 부호 없는 32비트 정수로 변환합니다.

Explicit(UIntPtr to UInt64)

지정된 UIntPtr 값을 부호 없는 64비트 정수로 변환합니다.

Explicit(UIntPtr to Void*)

지정된 UIntPtr 값을 지정되지 않은 형식으로 포인터로 변환합니다.

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

Explicit(Void* to UIntPtr)

지정된 포인터를 지정되지 않은 형식으로 변환합니다 UIntPtr.

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

Inequality(UIntPtr, UIntPtr)

지정된 두 인스턴스가 같지 않은지 여부를 확인합니다 UIntPtr .

Subtraction(UIntPtr, Int32)

부호 없는 정수에서 오프셋을 뺍니다.

명시적 인터페이스 구현

Name Description
IEquatable<UIntPtr>.Equals(UIntPtr)

이 인스턴스가 부호 없는 다른 정수와 같은지 여부를 나타내는 값을 반환합니다.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

개체를 SerializationInfo 현재 UIntPtr 개체를 serialize하는 데 필요한 데이터로 채웁니다.

적용 대상

스레드 보안

이 형식은 스레드로부터 안전합니다.

추가 정보