UIntPtr Structure
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Important
Cette API n’est pas conforme CLS.
Représente un entier non signé où la largeur du bit est identique à un pointeur.
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
- Héritage
- Attributs
- Implémente
Remarques
Le UIntPtr type est conçu pour être un entier dont la taille est identique à un pointeur. Autrement dit, une instance de ce type devrait être de 32 bits dans un processus 32 bits et 64 bits dans un processus 64 bits.
Le UIntPtr type peut être utilisé par les langages qui prennent en charge les pointeurs et comme moyen courant de faire référence aux données entre les langages qui ne prennent pas en charge les pointeurs. UIntPtr les objets peuvent également être utilisés pour contenir des handles.
Note
L’utilisation UIntPtr en tant que pointeur ou handle est sujette à des erreurs et dangereuses. Il s’agit simplement d’un type entier qui peut être utilisé comme format d’échange pour les pointeurs et les handles en raison d’une taille identique. En dehors des exigences d’échange spécifiques, telles que la transmission de données à un langage qui ne prend pas en charge les pointeurs, un pointeur correctement typé doit être utilisé pour représenter des pointeurs et SafeHandle doit être utilisé pour représenter des handles.
Ce type implémente le ISerializable. Dans .NET 5 et versions ultérieures, ce type implémente également les interfaces IFormattable. Dans .NET versions 7 et ultérieures, ce type implémente également les interfaces IBinaryInteger<TSelf>, IMinMaxValue<TSelf> et IUnsignedNumber<TSelf>.
En C# à partir de la version 9.0, vous pouvez utiliser le type intégré nuint pour définir des entiers de taille native. Ce type est représenté par le UIntPtr type en interne et fournit des opérations et des conversions appropriées pour les types entiers. Pour plus d’informations, consultez les types nint et nuint.
En C# à partir de la version 11 et lors du ciblage du runtime .NET 7 ou ultérieur, nuint est un alias pour UIntPtr de la même façon que uint est un alias pour UInt32.
Constructeurs
| Nom | Description |
|---|---|
| UIntPtr(UInt32) |
Initialise une nouvelle instance de la UIntPtr structure à l’aide de l’entier non signé 32 bits spécifié. |
| UIntPtr(UInt64) |
Initialise une nouvelle instance d’utilisation de UIntPtr l’entier non signé 64 bits spécifié. |
| UIntPtr(Void*) |
Initialise une nouvelle instance d’utilisation UIntPtr du pointeur spécifié vers un type non spécifié. |
Champs
| Nom | Description |
|---|---|
| Zero |
Champ en lecture seule qui représente un entier non signé qui a été initialisé à zéro. |
Propriétés
| Nom | Description |
|---|---|
| Size |
Obtient la taille de cette instance. |
Méthodes
| Nom | Description |
|---|---|
| Add(UIntPtr, Int32) |
Ajoute un décalage à un entier non signé. |
| Equals(Object) |
Retourne une valeur indiquant si cette instance est égale à un objet spécifié. |
| GetHashCode() |
Retourne le code de hachage pour cette instance. |
| Subtract(UIntPtr, Int32) |
Soustrait un décalage d’un entier non signé. |
| ToPointer() |
Convertit la valeur de cette instance en pointeur en type non spécifié. |
| ToString() |
Convertit la valeur numérique de cette instance en sa représentation sous forme de chaîne équivalente. |
| ToUInt32() |
Convertit la valeur de cette instance en entier non signé 32 bits. |
| ToUInt64() |
Convertit la valeur de cette instance en entier non signé 64 bits. |
Opérateurs
| Nom | Description |
|---|---|
| Addition(UIntPtr, Int32) |
Ajoute un décalage à un entier non signé. |
| Equality(UIntPtr, UIntPtr) |
Détermine si deux instances UIntPtr spécifiées sont égales. |
| Explicit(UInt32 to UIntPtr) |
Convertit la valeur d’un entier non signé 32 bits en entier UIntPtr. |
| Explicit(UInt64 to UIntPtr) |
Convertit la valeur d’un entier non signé 64 bits en entier UIntPtr. |
| Explicit(UIntPtr to UInt32) |
Convertit la valeur de l’entier non signé 32 bits spécifié UIntPtr . |
| Explicit(UIntPtr to UInt64) |
Convertit la valeur de l’entier non signé 64 bits spécifié UIntPtr . |
| Explicit(UIntPtr to Void*) |
Convertit la valeur du pointeur spécifié UIntPtr en type non spécifié. Cette API n’est pas conforme CLS. |
| Explicit(Void* to UIntPtr) |
Convertit le pointeur spécifié en type non spécifié en un UIntPtr. Cette API n’est pas conforme CLS. |
| Inequality(UIntPtr, UIntPtr) |
Détermine si deux instances spécifiées ne UIntPtr sont pas égales. |
| Subtraction(UIntPtr, Int32) |
Soustrait un décalage d’un entier non signé. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IEquatable<UIntPtr>.Equals(UIntPtr) |
Retourne une valeur qui indique si cette instance est égale à un autre entier non signé. |
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Remplit un SerializationInfo objet avec les données nécessaires pour sérialiser l’objet actuel UIntPtr . |
S’applique à
Cohérence de thread
Ce type est thread safe.