UIntPtr Struktur
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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.