UIntPtr Struktur

Definition

Wichtig

Diese API ist nicht CLS-kompatibel.

Stellt eine nicht signierte ganze Zahl dar, bei der die Bitbreite mit einem Zeiger identisch ist.

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
Vererbung
UIntPtr
Attribute
Implementiert

Hinweise

Der UIntPtr Typ ist so konzipiert, dass es sich um eine ganze Zahl handelt, deren Größe mit einem Zeiger identisch ist. Das heißt, eine Instanz dieses Typs wird voraussichtlich 32-Bit-Versionen in einem 32-Bit-Prozess und 64-Bit-Versionen in einem 64-Bit-Prozess sein.

Der UIntPtr Typ kann von Sprachen verwendet werden, die Zeiger unterstützen, und als gängige Möglichkeit, auf Daten zwischen Sprachen zu verweisen, die Zeiger nicht unterstützen. UIntPtr Objekte können auch zum Halten von Ziehpunkten verwendet werden.

Note

Die Verwendung UIntPtr als Zeiger oder Handle ist fehleranfällig und unsicher. Es handelt sich einfach um einen ganzzahligen Typ, der als Austauschformat für Zeiger und Handles verwendet werden kann, da sie dieselbe Größe aufweisen. Außerhalb bestimmter Austauschanforderungen, z. B. zum Übergeben von Daten an eine Sprache, die zeiger nicht unterstützt, sollte ein richtig typierter Zeiger verwendet werden, um Zeiger darzustellen und SafeHandle zum Darstellen von Handles verwendet werden.

Dieser Typ implementiert die ISerializable. In .NET 5 und neueren Versionen implementiert dieser Typ auch die schnittstellen IFormattable. In .NET 7 und höheren Versionen implementiert dieser Typ auch die Schnittstellen IBinaryInteger<TSelf>, IMinMaxValue<TSelf> und IUnsignedNumber<TSelf>.

In C# ab Version 9.0 können Sie den integrierten nuint Typ verwenden, um ganzzahlige Zahlen in systemeigener Größe zu definieren. Dieser Typ wird intern durch den UIntPtr Typ dargestellt und stellt Vorgänge und Konvertierungen bereit, die für ganzzahlige Typen geeignet sind. Weitere Informationen finden Sie unter nint- und nuint-Typen.

In C# ab Version 11 ist nuint ein Alias für UIntPtr auf .NET die gleiche Weise wie uint ein Alias für UInt32.

Konstruktoren

Name Beschreibung
UIntPtr(UInt32)

Initialisiert eine neue Instanz der Struktur mithilfe der UIntPtr angegebenen 32-Bit-Ganzzahl ohne Vorzeichen.

UIntPtr(UInt64)

Initialisiert eine neue Instanz der Verwendung der UIntPtr angegebenen 64-Bit-ganzzahl ohne Vorzeichen.

UIntPtr(Void*)

Initialisiert eine neue Instanz der Verwendung des UIntPtr angegebenen Zeigers auf einen nicht angegebenen Typ.

Felder

Name Beschreibung
Zero

Ein schreibgeschütztes Feld, das eine nicht signierte ganze Zahl darstellt, die auf Null initialisiert wurde.

Eigenschaften

Name Beschreibung
Size

Ruft die Größe dieser Instanz ab.

Methoden

Name Beschreibung
Add(UIntPtr, Int32)

Fügt einen Offset zu einer nicht signierten ganzen Zahl hinzu.

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

GetHashCode()

Gibt den Hashcode für diesen instance zurück.

Subtract(UIntPtr, Int32)

Subtrahiert einen Offset von einer nicht signierten ganzen Zahl.

ToPointer()

Konvertiert den Wert dieser Instanz in einen Zeiger in einen nicht angegebenen Typ.

ToString()

Konvertiert den numerischen Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung.

ToUInt32()

Wandelt den Wert dieser Instanz in eine 32-Bit-ganzzahl ohne Vorzeichen um.

ToUInt64()

Wandelt den Wert dieser Instanz in eine 64-Bit-ganzzahl ohne Vorzeichen um.

Operatoren

Name Beschreibung
Addition(UIntPtr, Int32)

Fügt einen Offset zu einer nicht signierten ganzen Zahl hinzu.

Equality(UIntPtr, UIntPtr)

Bestimmt, ob zwei angegebene Instanzen UIntPtr gleich sind.

Explicit(UInt32 to UIntPtr)

Konvertiert den Wert einer 32-Bit-Ganzzahl ohne Vorzeichen in eine UIntPtr.

Explicit(UInt64 to UIntPtr)

Konvertiert den Wert einer 64-Bit-Ganzzahl ohne Vorzeichen in eine UIntPtr.

Explicit(UIntPtr to UInt32)

Konvertiert den Wert des angegebenen UIntPtr Werts in eine 32-Bit-ganzzahl ohne Vorzeichen.

Explicit(UIntPtr to UInt64)

Konvertiert den Wert des angegebenen UIntPtr Werts in eine 64-Bit-ganzzahl ohne Vorzeichen.

Explicit(UIntPtr to Void*)

Konvertiert den Wert des angegebenen UIntPtr Werts in einen Zeiger in einen nicht angegebenen Typ.

Diese API ist nicht CLS-kompatibel.

Explicit(Void* to UIntPtr)

Konvertiert den angegebenen Zeiger in einen nicht angegebenen Typ in einen UIntPtr.

Diese API ist nicht CLS-kompatibel.

Inequality(UIntPtr, UIntPtr)

Bestimmt, ob zwei angegebene Instanzen UIntPtr ungleich sind.

Subtraction(UIntPtr, Int32)

Subtrahiert einen Offset von einer nicht signierten ganzen Zahl.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IEquatable<UIntPtr>.Equals(UIntPtr)

Gibt einen Wert zurück, der angibt, ob diese Instanz mit einer anderen ganzzahligen Vorzeichen identisch ist.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Füllt ein SerializationInfo Objekt mit den Daten auf, die zum Serialisieren des aktuellen UIntPtr Objekts erforderlich sind.

Gilt für:

Threadsicherheit

Dieser Typ ist threadsicher.

Weitere Informationen