UIntPtr Struct

Definizione

Importante

Questa API non è conforme a CLS.

Rappresenta un intero senza segno in cui la larghezza del bit è uguale a un puntatore.

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
Ereditarietà
UIntPtr
Attributi
Implementazioni

Commenti

Il UIntPtr tipo è progettato per essere un numero intero la cui dimensione è uguale a un puntatore. Ovvero, un'istanza di questo tipo dovrebbe essere a 32 bit in un processo a 32 bit e a 64 bit in un processo a 64 bit.

Il UIntPtr tipo può essere usato da linguaggi che supportano puntatori e come mezzo comune per fare riferimento ai dati tra lingue che e non supportano i puntatori. UIntPtr gli oggetti possono essere utilizzati anche per contenere handle.

Note

L'uso UIntPtr di come puntatore o handle è soggetto a errori e non sicuro. Si tratta semplicemente di un tipo integer che può essere usato come formato di interscambio per puntatori e handle a causa della stessa dimensione. Al di fuori di specifici requisiti di interscambio, ad esempio per il passaggio di dati a una lingua che non supporta i puntatori, è consigliabile usare un puntatore tipizzato correttamente per rappresentare i puntatori e SafeHandle usare per rappresentare gli handle.

Questo tipo implementa .ISerializable In .NET 5 e versioni successive, questo tipo implementa anche le interfacce IFormattable. In .NET 7 e versioni successive, questo tipo implementa anche le interfacce IBinaryInteger<TSelf>, IMinMaxValue<TSelf> e IUnsignedNumber<TSelf>.

In C# a partire dalla versione 9.0 è possibile usare il tipo predefinito nuint per definire numeri interi di dimensioni native. Questo tipo è rappresentato dal UIntPtr tipo internamente e fornisce operazioni e conversioni appropriate per i tipi integer. Per altre informazioni, vedere tipi nint e nuint.

In C# a partire dalla versione 11 e quando la destinazione è il runtime di .NET 7 o versione successiva, nuint è un alias per UIntPtr nello stesso modo in cui uint è un alias per UInt32.

Costruttori

Nome Descrizione
UIntPtr(UInt32)

Inizializza una nuova istanza della UIntPtr struttura utilizzando l'intero senza segno a 32 bit specificato.

UIntPtr(UInt64)

Inizializza una nuova istanza di UIntPtr utilizzando l'intero senza segno a 64 bit specificato.

UIntPtr(Void*)

Inizializza una nuova istanza di UIntPtr utilizzando il puntatore specificato a un tipo non specificato.

Campi

Nome Descrizione
Zero

Campo di sola lettura che rappresenta un intero senza segno inizializzato su zero.

Proprietà

Nome Descrizione
Size

Ottiene le dimensioni di questa istanza.

Metodi

Nome Descrizione
Add(UIntPtr, Int32)

Aggiunge un offset a un intero senza segno.

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

GetHashCode()

Restituisce il codice hash per questa istanza.

Subtract(UIntPtr, Int32)

Sottrae un offset da un intero senza segno.

ToPointer()

Converte il valore di questa istanza in un puntatore a un tipo non specificato.

ToString()

Converte il valore numerico di questa istanza nella rappresentazione di stringa equivalente.

ToUInt32()

Converte il valore di questa istanza in un intero senza segno a 32 bit.

ToUInt64()

Converte il valore di questa istanza in un intero senza segno a 64 bit.

Operatori

Nome Descrizione
Addition(UIntPtr, Int32)

Aggiunge un offset a un intero senza segno.

Equality(UIntPtr, UIntPtr)

Determina se due istanze specificate di UIntPtr sono uguali.

Explicit(UInt32 to UIntPtr)

Converte il valore di un intero senza segno a 32 bit in un oggetto UIntPtr.

Explicit(UInt64 to UIntPtr)

Converte il valore di un intero senza segno a 64 bit in un oggetto UIntPtr.

Explicit(UIntPtr to UInt32)

Converte il valore dell'oggetto specificato UIntPtr in un intero senza segno a 32 bit.

Explicit(UIntPtr to UInt64)

Converte il valore dell'oggetto specificato UIntPtr in un intero senza segno a 64 bit.

Explicit(UIntPtr to Void*)

Converte il valore dell'oggetto specificato UIntPtr in un puntatore a un tipo non specificato.

Questa API non è conforme a CLS.

Explicit(Void* to UIntPtr)

Converte il puntatore specificato in un tipo non specificato in un oggetto UIntPtr.

Questa API non è conforme a CLS.

Inequality(UIntPtr, UIntPtr)

Determina se due istanze specificate di UIntPtr non sono uguali.

Subtraction(UIntPtr, Int32)

Sottrae un offset da un intero senza segno.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IEquatable<UIntPtr>.Equals(UIntPtr)

Restituisce un valore che indica se questa istanza è uguale a un altro intero senza segno.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Popola un SerializationInfo oggetto con i dati necessari per serializzare l'oggetto corrente UIntPtr .

Si applica a

Thread safety

Questo tipo è thread-safe.

Vedi anche