UIntPtr Estrutura
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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.