UIntPtr Estructura

Definición

Importante

Esta API no es conforme a CLS.

Representa un entero sin signo donde el ancho de bits es el mismo que un puntero.

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
Herencia
UIntPtr
Atributos
Implementaciones

Comentarios

El UIntPtr tipo está diseñado para ser un entero cuyo tamaño es el mismo que un puntero. Es decir, se espera que una instancia de este tipo sea de 32 bits en un proceso de 32 bits y 64 bits en un proceso de 64 bits.

El UIntPtr tipo se puede usar en idiomas que admiten punteros y como medio común de hacer referencia a datos entre idiomas que sí y no admiten punteros. UIntPtr Los objetos también se pueden usar para contener identificadores.

Note

El uso UIntPtr de como puntero o identificador es propenso a errores y no es seguro. Es simplemente un tipo entero que se puede usar como formato de intercambio para punteros y identificadores debido a que tiene el mismo tamaño. Fuera de requisitos de intercambio específicos, como para pasar datos a un idioma que no admita punteros, se debe usar un puntero con tipo correcto para representar punteros y SafeHandle se debe usar para representar identificadores.

Este tipo implementa .ISerializable En .NET 5 y versiones posteriores, este tipo también implementa las interfaces de IFormattable. En .NET 7 y versiones posteriores, este tipo también implementa las interfaces /> / y .

En C# a partir de la versión 9.0, puede usar el tipo integrado nuint para definir enteros de tamaño nativo. Este tipo se representa internamente por el UIntPtr tipo y proporciona operaciones y conversiones que son adecuadas para los tipos enteros. Para obtener más información, vea tipos nint y nuint.

En C# a partir de la versión 11 y al tener como destino el entorno de ejecución de .NET 7 o posterior, nuint es un alias para UIntPtr de la misma manera que uint es un alias para UInt32.

Constructores

Nombre Description
UIntPtr(UInt32)

Inicializa una nueva instancia de la UIntPtr estructura utilizando el entero de 32 bits sin signo especificado.

UIntPtr(UInt64)

Inicializa una nueva instancia de UIntPtr con el entero de 64 bits sin signo especificado.

UIntPtr(Void*)

Inicializa una nueva instancia de UIntPtr utilizando el puntero especificado a un tipo no especificado.

Campos

Nombre Description
Zero

Campo de solo lectura que representa un entero sin signo que se ha inicializado en cero.

Propiedades

Nombre Description
Size

Obtiene el tamaño de esta instancia.

Métodos

Nombre Description
Add(UIntPtr, Int32)

Agrega un desplazamiento a un entero sin signo.

Equals(Object)

Devuelve un valor que indica si esta instancia es igual a un objeto especificado.

GetHashCode()

Devuelve el código hash de esta instancia.

Subtract(UIntPtr, Int32)

Resta un desplazamiento de un entero sin signo.

ToPointer()

Convierte el valor de esta instancia en un puntero a un tipo no especificado.

ToString()

Convierte el valor numérico de esta instancia en su representación de cadena equivalente.

ToUInt32()

Convierte el valor de esta instancia en un entero de 32 bits sin signo.

ToUInt64()

Convierte el valor de esta instancia en un entero de 64 bits sin signo.

Operadores

Nombre Description
Addition(UIntPtr, Int32)

Agrega un desplazamiento a un entero sin signo.

Equality(UIntPtr, UIntPtr)

Determina si dos instancias especificadas de UIntPtr son iguales.

Explicit(UInt32 to UIntPtr)

Convierte el valor de un entero de 32 bits sin signo en un UIntPtr.

Explicit(UInt64 to UIntPtr)

Convierte el valor de un entero de 64 bits sin signo en un UIntPtr.

Explicit(UIntPtr to UInt32)

Convierte el valor del especificado UIntPtr en un entero de 32 bits sin signo.

Explicit(UIntPtr to UInt64)

Convierte el valor del especificado UIntPtr en un entero de 64 bits sin signo.

Explicit(UIntPtr to Void*)

Convierte el valor del especificado UIntPtr en un puntero a un tipo no especificado.

Esta API no es conforme a CLS.

Explicit(Void* to UIntPtr)

Convierte el puntero especificado en un tipo no especificado en .UIntPtr

Esta API no es conforme a CLS.

Inequality(UIntPtr, UIntPtr)

Determina si dos instancias especificadas de UIntPtr no son iguales.

Subtraction(UIntPtr, Int32)

Resta un desplazamiento de un entero sin signo.

Implementaciones de interfaz explícitas

Nombre Description
IEquatable<UIntPtr>.Equals(UIntPtr)

Devuelve un valor que indica si esta instancia es igual a otro entero sin signo.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Rellena un SerializationInfo objeto con los datos necesarios para serializar el objeto actual UIntPtr .

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para subprocesos.

Consulte también