UIntPtr Struct-datatyp

Definition

Viktigt!

Detta API uppfyller inte CLS.

Representerar ett osignerat heltal där bitbredden är samma som en pekare.

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
Arv
UIntPtr
Attribut
Implementeringar

Kommentarer

Typen UIntPtr är utformad för att vara ett heltal vars storlek är samma som en pekare. En instans av den här typen förväntas alltså vara 32 bitar i en 32-bitarsprocess och 64-bitars i en 64-bitarsprocess.

Typen UIntPtr kan användas av språk som stöder pekare och som ett vanligt sätt att referera till data mellan språk som inte stöder pekare. UIntPtr objekt kan också användas för att lagra referenser.

Anmärkning

Att använda UIntPtr som pekare eller handtag är felbenäget och osäkert. Det är helt enkelt en heltalstyp som kan användas som ett utbytesformat för pekare och handtag på grund av samma storlek. Utanför specifika utbyteskrav, till exempel för att skicka data till ett språk som inte stöder pekare, bör en korrekt typad pekare användas för att representera pekare och SafeHandle användas för att representera referenser.

Den här typen implementerar ISerializable. I .NET 5 och senare versioner implementerar den här typen även gränssnitten IFormattable. I .NET 7 och senare versioner implementerar den här typen även gränssnitten IBinaryInteger<TSelf>, IMinMaxValue<TSelf> och IUnsignedNumber<TSelf>.

I C# från version 9.0 kan du använda den inbyggda nuint typen för att definiera inbyggda heltal. Den här typen representeras av UIntPtr typen internt och tillhandahåller åtgärder och konverteringar som är lämpliga för heltalstyper. Mer information finns i typerna nint och nuint.

I C# från och med version 11 och när .NET 7 eller senare körs är nuint ett alias för UIntPtr på samma sätt som uint är ett alias för UInt32.

Konstruktorer

Name Description
UIntPtr(UInt32)

Initierar en ny instans av UIntPtr strukturen med det angivna 32-bitars osignerade heltalet.

UIntPtr(UInt64)

Initierar en ny instans av UIntPtr att använda det angivna 64-bitars osignerade heltalet.

UIntPtr(Void*)

Initierar en ny instans av UIntPtr att använda den angivna pekaren till en ospecificerad typ.

Fält

Name Description
Zero

Ett skrivskyddat fält som representerar ett osignerat heltal som har initierats till noll.

Egenskaper

Name Description
Size

Hämtar storleken på den här instansen.

Metoder

Name Description
Add(UIntPtr, Int32)

Lägger till en förskjutning i ett osignerat heltal.

Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

GetHashCode()

Returnerar hash-koden för den här instansen.

Subtract(UIntPtr, Int32)

Subtraherar en förskjutning från ett osignerat heltal.

ToPointer()

Konverterar värdet för den här instansen till en pekare till en ospecificerad typ.

ToString()

Konverterar det numeriska värdet för den här instansen till motsvarande strängrepresentation.

ToUInt32()

Konverterar värdet för den här instansen till ett 32-bitars osignerat heltal.

ToUInt64()

Konverterar värdet för den här instansen till ett 64-bitars osignerat heltal.

Operatorer

Name Description
Addition(UIntPtr, Int32)

Lägger till en förskjutning i ett osignerat heltal.

Equality(UIntPtr, UIntPtr)

Avgör om två angivna instanser av UIntPtr är lika med.

Explicit(UInt32 to UIntPtr)

Konverterar värdet för ett 32-bitars osignerat heltal till ett UIntPtr.

Explicit(UInt64 to UIntPtr)

Konverterar värdet för ett 64-bitars osignerat heltal till ett UIntPtr.

Explicit(UIntPtr to UInt32)

Konverterar värdet för det angivna UIntPtr till ett 32-bitars osignerat heltal.

Explicit(UIntPtr to UInt64)

Konverterar värdet för det angivna UIntPtr till ett 64-bitars osignerat heltal.

Explicit(UIntPtr to Void*)

Konverterar värdet för den angivna UIntPtr till en pekare till en ospecificerad typ.

Detta API uppfyller inte CLS.

Explicit(Void* to UIntPtr)

Konverterar den angivna pekaren till en ospecificerad typ till en UIntPtr.

Detta API uppfyller inte CLS.

Inequality(UIntPtr, UIntPtr)

Avgör om två angivna instanser av UIntPtr inte är lika med.

Subtraction(UIntPtr, Int32)

Subtraherar en förskjutning från ett osignerat heltal.

Explicita gränssnittsimplementeringar

Name Description
IEquatable<UIntPtr>.Equals(UIntPtr)

Returnerar ett värde som anger om den här instansen är lika med ett annat osignerat heltal.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Fyller i ett SerializationInfo objekt med de data som behövs för att serialisera det aktuella UIntPtr objektet.

Gäller för

Trådsäkerhet

Den här typen är trådsäker.

Se även