UIntPtr Estrutura

Definição

Importante

Esta API não está em conformidade com CLS.

Representa um inteiro sem sinal em que a largura do bit é igual a um ponteiro.

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
Herança
UIntPtr
Atributos
Implementações

Comentários

O UIntPtr tipo foi projetado para ser um inteiro cujo tamanho é o mesmo que um ponteiro. Ou seja, espera-se que uma instância desse tipo seja de 32 bits em um processo de 32 bits e 64 bits em um processo de 64 bits.

O UIntPtr tipo pode ser usado por idiomas que dão suporte a ponteiros e como um meio comum de se referir a dados entre idiomas que dão suporte e não dão suporte a ponteiros. UIntPtr os objetos também podem ser usados para manter identificadores.

Note

Usar UIntPtr como ponteiro ou identificador é propenso a erros e não seguro. É simplesmente um tipo inteiro que pode ser usado como um formato de intercâmbio para ponteiros e identificadores devido ao mesmo tamanho. Fora dos requisitos de intercâmbio específicos, como para passar dados para um idioma que não dá suporte a ponteiros, um ponteiro digitado corretamente deve ser usado para representar ponteiros e SafeHandle deve ser usado para representar identificadores.

Esse tipo implementa o ISerializable. Em .NET 5 e versões posteriores, esse tipo também implementa as interfaces IFormattable. Em .NET 7 e versões posteriores, esse tipo também implementa as interfaces IBinaryInteger<TSelf>, IMinMaxValue<TSelf> e IUnsignedNumber<TSelf>.

No C# a partir da versão 9.0, você pode usar o tipo interno nuint para definir inteiros de tamanho nativo. Esse tipo é representado pelo UIntPtr tipo internamente e fornece operações e conversões apropriadas para tipos inteiros. Para obter mais informações, consulte os tipos nint e nuint.

No C# a partir da versão 11 e ao direcionar o runtime .NET 7 ou posterior, nuint é um alias para UIntPtr da mesma forma que uint é um alias para UInt32.

Construtores

Nome Description
UIntPtr(UInt32)

Inicializa uma nova instância da UIntPtr estrutura usando o inteiro sem sinal de 32 bits especificado.

UIntPtr(UInt64)

Inicializa uma nova instância de UIntPtr uso do inteiro sem sinal de 64 bits especificado.

UIntPtr(Void*)

Inicializa uma nova instância de uso do UIntPtr ponteiro especificado para um tipo não especificado.

Campos

Nome Description
Zero

Um campo somente leitura que representa um inteiro sem sinal que foi inicializado como zero.

Propriedades

Nome Description
Size

Obtém o tamanho dessa instância.

Métodos

Nome Description
Add(UIntPtr, Int32)

Adiciona um deslocamento a um inteiro sem sinal.

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

GetHashCode()

Devolve o código hash para esta instância.

Subtract(UIntPtr, Int32)

Subtrai um deslocamento de um inteiro sem sinal.

ToPointer()

Converte o valor dessa instância em um ponteiro em um tipo não especificado.

ToString()

Converte o valor numérico dessa instância em sua representação de cadeia de caracteres equivalente.

ToUInt32()

Converte o valor dessa instância em um inteiro sem sinal de 32 bits.

ToUInt64()

Converte o valor dessa instância em um inteiro sem sinal de 64 bits.

Operadores

Nome Description
Addition(UIntPtr, Int32)

Adiciona um deslocamento a um inteiro sem sinal.

Equality(UIntPtr, UIntPtr)

Determina se duas instâncias especificadas são iguais UIntPtr .

Explicit(UInt32 to UIntPtr)

Converte o valor de um inteiro sem sinal de 32 bits em um UIntPtr.

Explicit(UInt64 to UIntPtr)

Converte o valor de um inteiro sem sinal de 64 bits em um UIntPtr.

Explicit(UIntPtr to UInt32)

Converte o valor do especificado UIntPtr em um inteiro sem sinal de 32 bits.

Explicit(UIntPtr to UInt64)

Converte o valor do especificado UIntPtr em um inteiro sem sinal de 64 bits.

Explicit(UIntPtr to Void*)

Converte o valor do especificado UIntPtr em um ponteiro em um tipo não especificado.

Esta API não está em conformidade com CLS.

Explicit(Void* to UIntPtr)

Converte o ponteiro especificado em um tipo não especificado em um UIntPtr.

Esta API não está em conformidade com CLS.

Inequality(UIntPtr, UIntPtr)

Determina se duas instâncias especificadas não são iguais UIntPtr .

Subtraction(UIntPtr, Int32)

Subtrai um deslocamento de um inteiro sem sinal.

Implantações explícitas de interface

Nome Description
IEquatable<UIntPtr>.Equals(UIntPtr)

Retorna um valor que indica se essa instância é igual a outro inteiro sem sinal.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Popula um SerializationInfo objeto com os dados necessários para serializar o objeto atual UIntPtr .

Aplica-se a

Acesso thread-safe

Esse tipo é thread safe.

Confira também