UIntPtr Estrutura
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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.