UIntPtr Estrutura

Definição

Importante

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

Representa um inteiro sem sinal onde a largura de bits é igual à de 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

Observações

O UIntPtr tipo é concebido para ser um inteiro cujo tamanho é igual ao de um ponteiro. Ou seja, espera-se que uma instância deste tipo seja de 32 bits num processo de 32 bits e de 64 bits num processo de 64 bits.

O UIntPtr tipo pode ser usado por linguagens que suportam ponteiros, e como um meio comum de referenciar dados entre línguas que suportam ou não apontadores. UIntPtr Objetos também podem ser usados para segurar pegas.

Note

Usar UIntPtr como ponteiro ou alavanca é propenso a erros e inseguro. É simplesmente um tipo inteiro que pode ser usado como formato de intercâmbio para ponteiros e handles, devido ao mesmo tamanho. Fora de requisitos específicos de intercâmbio, como para passar dados para uma linguagem que não suporta ponteiros, um ponteiro corretamente tipado deve ser usado para representar ponteiros e SafeHandle deve ser usado para representar handles.

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

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

Em 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

Name Description
UIntPtr(UInt32)

Inicializa uma nova instância da UIntPtr estrutura usando o inteiro não assinado de 32 bits especificado.

UIntPtr(UInt64)

Inicializa uma nova instância de UIntPtr usar o inteiro não assinado especificado de 64 bits.

UIntPtr(Void*)

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

Campos

Name Description
Zero

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

Propriedades

Name Description
Size

Percebe o tamanho desta instância.

Métodos

Name Description
Add(UIntPtr, Int32)

Adiciona um deslocamento a um inteiro sem sinal.

Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

GetHashCode()

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

Subtract(UIntPtr, Int32)

Subtrai um deslocamento de um inteiro sem signo.

ToPointer()

Converte o valor desta instância num ponteiro para um tipo não especificado.

ToString()

Converte o valor numérico desta instância para a sua representação equivalente em cadeias.

ToUInt32()

Converte o valor desta instância para um inteiro sem sinal de 32 bits.

ToUInt64()

Converte o valor desta instância para um inteiro sem sinal de 64 bits.

Operadores

Name Description
Addition(UIntPtr, Int32)

Adiciona um deslocamento a um inteiro sem sinal.

Equality(UIntPtr, UIntPtr)

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

Explicit(UInt32 to UIntPtr)

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

Explicit(UInt64 to UIntPtr)

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

Explicit(UIntPtr to UInt32)

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

Explicit(UIntPtr to UInt64)

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

Explicit(UIntPtr to Void*)

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

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

Explicit(Void* to UIntPtr)

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

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

Inequality(UIntPtr, UIntPtr)

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

Subtraction(UIntPtr, Int32)

Subtrai um deslocamento de um inteiro sem signo.

Implementações de Interface Explícita

Name Description
IEquatable<UIntPtr>.Equals(UIntPtr)

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

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

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

Aplica-se a

Segurança de Thread

Este tipo é seguro para fios.

Ver também