UIntPtr Struct
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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.