UIntPtr Struktúra

Definíció

Fontos

Ez az API nem CLS-kompatibilis.

Aláíratlan egész számot jelöl, ahol a bitszélesség megegyezik a mutatóval.

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
Öröklődés
UIntPtr
Attribútumok
Megvalósítás

Megjegyzések

A UIntPtr típus olyan egész számnak készült, amelynek mérete megegyezik a mutatóéval. Vagyis az ilyen típusú példányok várhatóan 32 bitesek lesznek egy 32 bites folyamatban, és 64 bitesek egy 64 bites folyamatban.

A UIntPtr típust olyan nyelvek használhatják, amelyek támogatják a mutatókat, és gyakran hivatkoznak olyan nyelvek közötti adatokra, amelyek nem támogatják a mutatókat. UIntPtr az objektumok fogópontok tárolására is használhatók.

Note

Mutatóként vagy fogópontként való használata UIntPtr hibalehetőség és nem biztonságos. Ez egyszerűen egy egész számtípus, amely ugyanazzal a méretével használható felcserélhető formátumként a mutatókhoz és a fogópontokhoz. A konkrét felcserélési követelményeken kívül, például az adatok olyan nyelvre való továbbításához, amely nem támogatja a mutatókat, egy helyesen beírt mutatót kell használni a mutatók megjelenítéséhez, és SafeHandle a fogópontok megjelenítésére kell használni.

Ez a típus implementálja a ISerializable. Az .NET 5-ös és újabb verzióiban ez a típus a IFormattable interfészeket is implementálja. A .NET 7-es és újabb verzióiban ez a típus a IBinaryInteger<TSelf>, IMinMaxValue<TSelf> és IUnsignedNumber<TSelf> interfészeket is implementálja.

A C#-ban a 9.0-s verziótól kezdve a beépített nuint típussal natív méretű egész számokat definiálhat. Ezt a típust a UIntPtr típus képviseli belsőleg, és olyan műveleteket és átalakításokat biztosít, amelyek megfelelnek az egész számtípusoknak. További információ: nint és nuint types.

A C#-ban a 11-es verziótól kezdve és a .NET 7-es vagy újabb futtatókörnyezet megcélzásakor a nuint a UIntPtr aliasa, ugyanúgy, mint a uint a UInt32 aliasa.

Konstruktorok

Name Description
UIntPtr(UInt32)

Inicializálja a UIntPtr struktúra új példányát a megadott 32 bites aláíratlan egész szám használatával.

UIntPtr(UInt64)

Inicializál egy új példányt UIntPtr a megadott 64 bites aláíratlan egész szám használatával.

UIntPtr(Void*)

Inicializál egy új példányt UIntPtr , amely a megadott mutatót nem meghatározott típusra használja.

Mezők

Name Description
Zero

Írásvédett mező, amely nullára inicializált aláíratlan egész számot jelöl.

Tulajdonságok

Name Description
Size

Lekéri a példány méretét.

Metódusok

Name Description
Add(UIntPtr, Int32)

Eltolást ad hozzá egy aláíratlan egész számhoz.

Equals(Object)

Egy értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

GetHashCode()

A példány kivonatkódját adja vissza.

Subtract(UIntPtr, Int32)

Eltolás kivonása egy előjel nélküli egész számból.

ToPointer()

A példány értékét egy meghatározatlan típussá alakítja át.

ToString()

A példány numerikus értékét a megfelelő sztring-ábrázolásúvá alakítja.

ToUInt32()

A példány értékét 32 bites, aláíratlan egész számmá alakítja.

ToUInt64()

A példány értékét 64 bites, aláíratlan egész számmá alakítja.

Operátorok

Name Description
Addition(UIntPtr, Int32)

Eltolást ad hozzá egy aláíratlan egész számhoz.

Equality(UIntPtr, UIntPtr)

Meghatározza, hogy két megadott példány UIntPtr egyenlő-e.

Explicit(UInt32 to UIntPtr)

Egy 32 bites aláíratlan egész szám értékét alakítja át egy UIntPtr.

Explicit(UInt64 to UIntPtr)

Egy 64 bites aláíratlan egész szám értékét átalakítja egy UIntPtr.

Explicit(UIntPtr to UInt32)

A megadott UIntPtr értéket 32 bites, aláíratlan egész számmá alakítja.

Explicit(UIntPtr to UInt64)

A megadott UIntPtr érték konvertálása 64 bites, aláíratlan egész számmá.

Explicit(UIntPtr to Void*)

A megadott UIntPtr értékeket mutatóvá alakítja egy meghatározatlan típussá.

Ez az API nem CLS-kompatibilis.

Explicit(Void* to UIntPtr)

A megadott mutatót meghatározatlan típussá UIntPtralakítja.

Ez az API nem CLS-kompatibilis.

Inequality(UIntPtr, UIntPtr)

Meghatározza, hogy két megadott példány UIntPtr nem egyenlő-e.

Subtraction(UIntPtr, Int32)

Eltolás kivonása egy előjel nélküli egész számból.

Explicit interfész-implementációk

Name Description
IEquatable<UIntPtr>.Equals(UIntPtr)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy másik aláíratlan egész számokkal.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Feltölt egy SerializationInfo objektumot az aktuális UIntPtr objektum szerializálásához szükséges adatokkal.

A következőre érvényes:

Szálbiztonság

Ez a típus szálbiztos.

Lásd még