IntPtr Structure

Définition

Représente un entier signé où la largeur du bit est identique à un pointeur.

public value class IntPtr
public value class IntPtr : IComparable, IComparable<IntPtr>, IEquatable<IntPtr>, IFormattable, System::Runtime::Serialization::ISerializable
public value class IntPtr : IComparable, IComparable<IntPtr>, IEquatable<IntPtr>, ISpanFormattable, System::Runtime::Serialization::ISerializable
public value class IntPtr : IComparable<IntPtr>, IEquatable<IntPtr>, IParsable<IntPtr>, ISpanParsable<IntPtr>, System::Numerics::IAdditionOperators<IntPtr, IntPtr, IntPtr>, System::Numerics::IAdditiveIdentity<IntPtr, IntPtr>, System::Numerics::IBinaryInteger<IntPtr>, System::Numerics::IBinaryNumber<IntPtr>, System::Numerics::IBitwiseOperators<IntPtr, IntPtr, IntPtr>, System::Numerics::IComparisonOperators<IntPtr, IntPtr>, System::Numerics::IDecrementOperators<IntPtr>, System::Numerics::IDivisionOperators<IntPtr, IntPtr, IntPtr>, System::Numerics::IEqualityOperators<IntPtr, IntPtr>, System::Numerics::IIncrementOperators<IntPtr>, System::Numerics::IMinMaxValue<IntPtr>, System::Numerics::IModulusOperators<IntPtr, IntPtr, IntPtr>, System::Numerics::IMultiplicativeIdentity<IntPtr, IntPtr>, System::Numerics::IMultiplyOperators<IntPtr, IntPtr, IntPtr>, System::Numerics::INumber<IntPtr>, System::Numerics::INumberBase<IntPtr>, System::Numerics::IShiftOperators<IntPtr, IntPtr>, System::Numerics::ISignedNumber<IntPtr>, System::Numerics::ISubtractionOperators<IntPtr, IntPtr, IntPtr>, System::Numerics::IUnaryNegationOperators<IntPtr, IntPtr>, System::Numerics::IUnaryPlusOperators<IntPtr, IntPtr>, System::Runtime::Serialization::ISerializable
public value class IntPtr : IEquatable<IntPtr>, System::Runtime::Serialization::ISerializable
public value class IntPtr : System::Runtime::Serialization::ISerializable
public struct IntPtr
public readonly struct IntPtr : IComparable, IComparable<IntPtr>, IEquatable<IntPtr>, IFormattable, System.Runtime.Serialization.ISerializable
public readonly struct IntPtr : IComparable, IComparable<IntPtr>, IEquatable<IntPtr>, ISpanFormattable, System.Runtime.Serialization.ISerializable
public readonly struct IntPtr : IComparable<IntPtr>, IEquatable<IntPtr>, IParsable<IntPtr>, ISpanParsable<IntPtr>, System.Numerics.IAdditionOperators<IntPtr,IntPtr,IntPtr>, System.Numerics.IAdditiveIdentity<IntPtr,IntPtr>, System.Numerics.IBinaryInteger<IntPtr>, System.Numerics.IBinaryNumber<IntPtr>, System.Numerics.IBitwiseOperators<IntPtr,IntPtr,IntPtr>, System.Numerics.IComparisonOperators<IntPtr,IntPtr>, System.Numerics.IDecrementOperators<IntPtr>, System.Numerics.IDivisionOperators<IntPtr,IntPtr,IntPtr>, System.Numerics.IEqualityOperators<IntPtr,IntPtr>, System.Numerics.IIncrementOperators<IntPtr>, System.Numerics.IMinMaxValue<IntPtr>, System.Numerics.IModulusOperators<IntPtr,IntPtr,IntPtr>, System.Numerics.IMultiplicativeIdentity<IntPtr,IntPtr>, System.Numerics.IMultiplyOperators<IntPtr,IntPtr,IntPtr>, System.Numerics.INumber<IntPtr>, System.Numerics.INumberBase<IntPtr>, System.Numerics.IShiftOperators<IntPtr,IntPtr>, System.Numerics.ISignedNumber<IntPtr>, System.Numerics.ISubtractionOperators<IntPtr,IntPtr,IntPtr>, System.Numerics.IUnaryNegationOperators<IntPtr,IntPtr>, System.Numerics.IUnaryPlusOperators<IntPtr,IntPtr>, System.Runtime.Serialization.ISerializable
public struct IntPtr : IEquatable<IntPtr>, System.Runtime.Serialization.ISerializable
public readonly struct IntPtr : IEquatable<IntPtr>, System.Runtime.Serialization.ISerializable
[System.Serializable]
public struct IntPtr : System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct IntPtr : System.Runtime.Serialization.ISerializable
public struct IntPtr : System.Runtime.Serialization.ISerializable
type nativeint = struct
type nativeint = struct
    interface IFormattable
    interface ISerializable
type nativeint = struct
    interface ISpanFormattable
    interface IFormattable
    interface ISerializable
type nativeint = struct
    interface IFormattable
    interface IParsable<nativeint>
    interface ISpanFormattable
    interface ISpanParsable<nativeint>
    interface IAdditionOperators<nativeint, nativeint, nativeint>
    interface IAdditiveIdentity<nativeint, nativeint>
    interface IBinaryInteger<nativeint>
    interface IBinaryNumber<nativeint>
    interface IBitwiseOperators<nativeint, nativeint, nativeint>
    interface IComparisonOperators<nativeint, nativeint>
    interface IEqualityOperators<nativeint, nativeint>
    interface IDecrementOperators<nativeint>
    interface IDivisionOperators<nativeint, nativeint, nativeint>
    interface IIncrementOperators<nativeint>
    interface IModulusOperators<nativeint, nativeint, nativeint>
    interface IMultiplicativeIdentity<nativeint, nativeint>
    interface IMultiplyOperators<nativeint, nativeint, nativeint>
    interface INumber<nativeint>
    interface INumberBase<nativeint>
    interface ISubtractionOperators<nativeint, nativeint, nativeint>
    interface IUnaryNegationOperators<nativeint, nativeint>
    interface IUnaryPlusOperators<nativeint, nativeint>
    interface IShiftOperators<nativeint, nativeint>
    interface IMinMaxValue<nativeint>
    interface ISignedNumber<nativeint>
    interface ISerializable
type nativeint = struct
    interface ISerializable
[<System.Serializable>]
type nativeint = struct
    interface ISerializable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type nativeint = struct
    interface ISerializable
Public Structure IntPtr
Public Structure IntPtr
Implements IComparable, IComparable(Of IntPtr), IEquatable(Of IntPtr), IFormattable, ISerializable
Public Structure IntPtr
Implements IComparable, IComparable(Of IntPtr), IEquatable(Of IntPtr), ISerializable, ISpanFormattable
Public Structure IntPtr
Implements IAdditionOperators(Of IntPtr, IntPtr, IntPtr), IAdditiveIdentity(Of IntPtr, IntPtr), IBinaryInteger(Of IntPtr), IBinaryNumber(Of IntPtr), IBitwiseOperators(Of IntPtr, IntPtr, IntPtr), IComparable(Of IntPtr), IComparisonOperators(Of IntPtr, IntPtr), IDecrementOperators(Of IntPtr), IDivisionOperators(Of IntPtr, IntPtr, IntPtr), IEqualityOperators(Of IntPtr, IntPtr), IEquatable(Of IntPtr), IIncrementOperators(Of IntPtr), IMinMaxValue(Of IntPtr), IModulusOperators(Of IntPtr, IntPtr, IntPtr), IMultiplicativeIdentity(Of IntPtr, IntPtr), IMultiplyOperators(Of IntPtr, IntPtr, IntPtr), INumber(Of IntPtr), INumberBase(Of IntPtr), IParsable(Of IntPtr), ISerializable, IShiftOperators(Of IntPtr, IntPtr), ISignedNumber(Of IntPtr), ISpanParsable(Of IntPtr), ISubtractionOperators(Of IntPtr, IntPtr, IntPtr), IUnaryNegationOperators(Of IntPtr, IntPtr), IUnaryPlusOperators(Of IntPtr, IntPtr)
Public Structure IntPtr
Implements IEquatable(Of IntPtr), ISerializable
Public Structure IntPtr
Implements ISerializable
Héritage
IntPtr
Attributs
Implémente
IComparable IComparable<IntPtr> IEquatable<IntPtr> IFormattable ISerializable ISpanFormattable IComparable<TOther> IComparable<TSelf> IEquatable<TOther> IEquatable<TSelf> IParsable<IntPtr> IParsable<TSelf> ISpanParsable<IntPtr> ISpanParsable<TSelf> IAdditionOperators<IntPtr,IntPtr,IntPtr> IAdditionOperators<TSelf,TSelf,TSelf> IAdditiveIdentity<IntPtr,IntPtr> IAdditiveIdentity<TSelf,TSelf> IBinaryInteger<IntPtr> IBinaryNumber<IntPtr> IBinaryNumber<TSelf> IBitwiseOperators<IntPtr,IntPtr,IntPtr> IBitwiseOperators<TSelf,TSelf,TSelf> System.Numerics.IComparisonOperators<IntPtr,IntPtr> System.Numerics.IComparisonOperators<TSelf,TSelf> IDecrementOperators<IntPtr> IDecrementOperators<TSelf> IDivisionOperators<IntPtr,IntPtr,IntPtr> IDivisionOperators<TSelf,TSelf,TSelf> System.Numerics.IEqualityOperators<IntPtr,IntPtr> System.Numerics.IEqualityOperators<TSelf,TOther> System.Numerics.IEqualityOperators<TSelf,TSelf> IIncrementOperators<IntPtr> IIncrementOperators<TSelf> IMinMaxValue<IntPtr> IModulusOperators<IntPtr,IntPtr,IntPtr> IModulusOperators<TSelf,TSelf,TSelf> IMultiplicativeIdentity<IntPtr,IntPtr> IMultiplicativeIdentity<TSelf,TSelf> IMultiplyOperators<IntPtr,IntPtr,IntPtr> IMultiplyOperators<TSelf,TSelf,TSelf> INumber<IntPtr> INumber<TSelf> INumberBase<IntPtr> INumberBase<TSelf> System.Numerics.IShiftOperators<IntPtr,IntPtr> System.Numerics.IShiftOperators<TSelf,TSelf> ISignedNumber<IntPtr> ISubtractionOperators<IntPtr,IntPtr,IntPtr> ISubtractionOperators<TSelf,TSelf,TSelf> IUnaryNegationOperators<IntPtr,IntPtr> IUnaryNegationOperators<TSelf,TSelf> IUnaryPlusOperators<IntPtr,IntPtr> IUnaryPlusOperators<TSelf,TSelf>

Exemples

L’exemple suivant utilise des pointeurs managés pour inverser les caractères d’un tableau. Une fois qu’il initialise un String objet et obtient sa longueur, il effectue les opérations suivantes :

  1. Appelle la Marshal.StringToHGlobalAnsi méthode pour copier la chaîne Unicode en mémoire non managée en tant que caractère ANSI (un octet). La méthode retourne un IntPtr objet qui pointe vers le début de la chaîne non managée. L’exemple Visual Basic utilise ce pointeur directement ; dans les exemples C++, F# et C#, il est converti en pointeur vers un octet.

  2. Appelle la Marshal.AllocHGlobal méthode pour allouer le même nombre d’octets que la chaîne non managée occupe. La méthode retourne un IntPtr objet qui pointe vers le début du bloc de mémoire non managé. L’exemple Visual Basic utilise ce pointeur directement ; dans les exemples C++, F# et C#, il est converti en pointeur vers un octet.

  3. L’exemple Visual Basic définit une variable nommée offset égale à la longueur de la chaîne ANSI. Il est utilisé pour déterminer le décalage en mémoire non managée vers laquelle le caractère suivant de la chaîne ANSI est copié. Étant donné que sa valeur de départ est la longueur de la chaîne, l’opération de copie copie copie un caractère du début de la chaîne à la fin du bloc de mémoire.

    Les exemples C#, F# et C++ appellent la ToPointer méthode pour obtenir un pointeur non managé vers l’adresse de départ de la chaîne et le bloc de mémoire non managé, et ils ajoutent un pointeur inférieur à la longueur de la chaîne à l’adresse de départ de la chaîne ANSI. Étant donné que le pointeur de chaîne non managé pointe maintenant vers la fin de la chaîne, l’opération de copie copie copie un caractère de la fin de la chaîne au début du bloc de mémoire.

  4. Utilise une boucle pour copier chaque caractère de la chaîne vers le bloc de mémoire non managé.

    L’exemple Visual Basic appelle la Marshal.ReadByte(IntPtr, Int32) méthode pour lire l’octet (ou caractère d’un octet) à un décalage spécifié du pointeur managé vers la chaîne ANSI. Le décalage est incrémenté avec chaque itération de la boucle. Il appelle ensuite la Marshal.WriteByte(IntPtr, Int32, Byte) méthode pour écrire l’octet dans l’adresse mémoire définie par l’adresse de départ du bloc de mémoire non managé plus offset. Il décrémente offsetensuite .

    Les exemples C#, F# et C++ effectuent l’opération de copie, puis décrémentent le pointeur vers l’adresse de l’emplacement suivant dans la chaîne ANSI non managée et incrémentent le pointeur vers l’adresse suivante dans le bloc non managé.

  5. Tous les exemples appellent le Marshal.PtrToStringAnsi bloc de mémoire non managé contenant la chaîne ANSI copiée en objet Unicode String managé.

  6. Après avoir affiché les chaînes d’origine et inversées, tous les exemples appellent la FreeHGlobal méthode pour libérer la mémoire allouée pour la chaîne ANSI non managée et le bloc de mémoire non managé.

using namespace System;
using namespace System::Runtime::InteropServices;

class NotTooSafeStringReverse
{
public:
    static void Main()
    {
        String^ stringA = "I seem to be turned around!";
        int copylen = stringA->Length;

        // Allocate HGlobal memory for source and destination strings
        IntPtr sptr = Marshal::StringToHGlobalAnsi(stringA);
        IntPtr dptr = Marshal::AllocHGlobal(copylen + 1);

        char *src = (char *)sptr.ToPointer();
        char *dst = (char *)dptr.ToPointer();

        if (copylen > 0)
        {
            // set the source pointer to the end of the string
            // to do a reverse copy.
            src += copylen - 1;

            while (copylen-- > 0)
            {
                *dst++ = *src--;
            }
            *dst = 0;
        }
        String^ stringB = Marshal::PtrToStringAnsi(dptr);

        Console::WriteLine("Original:\n{0}\n", stringA);
        Console::WriteLine("Reversed:\n{0}", stringB);

        // Free HGlobal memory
        Marshal::FreeHGlobal(dptr);
        Marshal::FreeHGlobal(sptr);
    }
};

int main()
{
    NotTooSafeStringReverse::Main();
}

// The progam has the following output:
//
// Original:
// I seem to be turned around!
//
// Reversed:
// !dnuora denrut eb ot mees I
using System;
using System.Runtime.InteropServices;

class NotTooSafeStringReverse
{
    static public void Main()
    {
        string stringA = "I seem to be turned around!";
        int copylen = stringA.Length;

        // Allocate HGlobal memory for source and destination strings
        IntPtr sptr = Marshal.StringToHGlobalAnsi(stringA);
        IntPtr dptr = Marshal.AllocHGlobal(copylen + 1);

        // The unsafe section where byte pointers are used.
        unsafe
        {
            byte *src = (byte *)sptr.ToPointer();
            byte *dst = (byte *)dptr.ToPointer();

            if (copylen > 0)
            {
                // set the source pointer to the end of the string
                // to do a reverse copy.
                src += copylen - 1;

                while (copylen-- > 0)
                {
                    *dst++ = *src--;
                }
                *dst = 0;
            }
        }
        string stringB = Marshal.PtrToStringAnsi(dptr);

        Console.WriteLine("Original:\n{0}\n", stringA);
        Console.WriteLine("Reversed:\n{0}", stringB);

        // Free HGlobal memory
        Marshal.FreeHGlobal(dptr);
        Marshal.FreeHGlobal(sptr);
    }
}

// The progam has the following output:
//
// Original:
// I seem to be turned around!
//
// Reversed:
// !dnuora denrut eb ot mees I
#nowarn "9"
open System.Runtime.InteropServices
open FSharp.NativeInterop

[<EntryPoint>]
let main _ = 
    let stringA = "I seem to be turned around!"
    let mutable copylen = stringA.Length

    // Allocate HGlobal memory for source and destination strings
    let sptr = Marshal.StringToHGlobalAnsi stringA
    let dptr = Marshal.AllocHGlobal(copylen + 1)

    let mutable src: byte nativeptr = sptr.ToPointer() |> NativePtr.ofVoidPtr
    let mutable dst: byte nativeptr = dptr.ToPointer() |> NativePtr.ofVoidPtr

    if copylen > 0 then
        // set the source pointer to the end of the string
        // to do a reverse copy.
        src <- 
            NativePtr.toNativeInt src + nativeint (copylen - 1) 
            |> NativePtr.ofNativeInt

        while copylen > 0 do
            copylen <- copylen - 1
            NativePtr.read src |> NativePtr.write dst
            dst <- NativePtr.toNativeInt dst + 1n |> NativePtr.ofNativeInt
            src <- NativePtr.toNativeInt src - 1n |> NativePtr.ofNativeInt
        NativePtr.write dst 0uy

    let stringB = Marshal.PtrToStringAnsi dptr

    printfn $"Original:\n{stringA}\n"
    printfn $"Reversed:\n{stringB}"

    // Free HGlobal memory
    Marshal.FreeHGlobal dptr
    Marshal.FreeHGlobal sptr
    0

// The progam has the following output:
//
// Original:
// I seem to be turned around!
//
// Reversed:
// !dnuora denrut eb ot mees I
Imports System.Runtime.InteropServices

Public Module Example
    Public Sub Main()
        Dim stringA As String = "I seem to be turned around!"
        Dim copylen As Integer = stringA.Length

        ' Allocate HGlobal memory for source and destination strings
        Dim sptr As IntPtr = Marshal.StringToHGlobalAnsi(stringA)
        Dim dptr As IntPtr = Marshal.AllocHGlobal(copylen)
        Dim offset As Integer = copylen - 1

         For ctr As Integer = 0 To copylen - 1
            Dim b As Byte = Marshal.ReadByte(sptr, ctr)
            Marshal.WriteByte(dptr, offset, b)
            offset -= 1
         Next

        Dim stringB As String = Marshal.PtrToStringAnsi(dptr)

        Console.WriteLine("Original:{1}{0}{1}", stringA, vbCrLf)
        Console.WriteLine("Reversed:{1}{0}{1}", stringB, vbCrLf)

        ' Free HGlobal memory
        Marshal.FreeHGlobal(dptr)
        Marshal.FreeHGlobal(sptr)
    End Sub
End Module
' The example displays the following output:
'       Original:
'       I seem to be turned around!
'
'       Reversed:
'       !dnuora denrut eb ot mees I

Remarques

Le IntPtr 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 IntPtr 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 langues qui ne prennent pas en charge les pointeurs.

IntPtr les objets peuvent également être utilisés pour contenir des handles. Par exemple, les instances de IntPtr sont utilisées de manière intensive dans la System.IO.FileStream classe pour contenir des descripteurs de fichiers.

Notes

L’utilisation IntPtr en tant que pointeur ou handle est sujette aux erreurs et non sécurisée. 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 même taille. En dehors des exigences spécifiques en matière d’échange, 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 IFormattable interfaces. Dans .NET 7 et versions ultérieures, ce type implémente également les interfaces et ISignedNumber<TSelf> les IBinaryInteger<TSelf>. IMinMaxValue<TSelf>

En C# à partir de la version 9.0, vous pouvez utiliser le type intégré nint pour définir des entiers de taille native. Ce type est représenté par le IntPtr 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 lorsque vous ciblez le runtime .NET 7 ou ultérieur, nint il s’agit d’un alias IntPtr de la même façon que int pour Int32.

Constructeurs

IntPtr(Int32)

Initialise une nouvelle instance d’utilisation de IntPtr l’entier signé 32 bits spécifié.

IntPtr(Int64)

Initialise une nouvelle instance d’utilisation de IntPtr l’entier signé 64 bits spécifié.

IntPtr(Void*)

Initialise une nouvelle instance de IntPtr à l'aide du pointeur spécifié vers un type non spécifié.

Champs

Zero

Champ en lecture seule qui représente un entier signé qui a été initialisé à zéro.

Propriétés

MaxValue

Obtient la plus grande valeur possible de IntPtr.

MinValue

Obtient la plus petite valeur possible de IntPtr.

Size

Obtient la taille de cette instance.

Méthodes

Abs(IntPtr)

Calcule l’absolu d’une valeur.

Add(IntPtr, Int32)

Ajoute un décalage à un entier signé.

Clamp(IntPtr, IntPtr, IntPtr)

Limite une valeur à une valeur minimale et maximale inclusive.

CompareTo(IntPtr)

Compare l'instance actuelle à un autre objet du même type et retourne un entier qui indique si l'instance actuelle précède ou suit un autre objet ou se trouve à la même position que ce dernier dans l'ordre de tri.

CompareTo(Object)

Compare l'instance actuelle à un autre objet du même type et retourne un entier qui indique si l'instance actuelle précède ou suit un autre objet ou se trouve à la même position que ce dernier dans l'ordre de tri.

CopySign(IntPtr, IntPtr)

Copie le signe d’une valeur vers le signe d’une autre valeur.

DivRem(IntPtr, IntPtr)

Calcule le quotient et le reste de deux valeurs.

Equals(IntPtr)

Indique si l'objet actuel est égal à un autre objet du même type.

Equals(Object)

Retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

GetHashCode()

Retourne le code de hachage de cette instance.

IsEvenInteger(IntPtr)

Détermine si une valeur représente un nombre intégral pair.

IsNegative(IntPtr)

Détermine si une valeur est négative.

IsOddInteger(IntPtr)

Détermine si une valeur représente un nombre intégral impair.

IsPositive(IntPtr)

Détermine si une valeur est positive.

IsPow2(IntPtr)

Détermine si une valeur est une puissance de deux.

LeadingZeroCount(IntPtr)

Calcule le nombre de zéros non significatifs dans une valeur.

Log2(IntPtr)

Calcule le journal2 d’une valeur.

Max(IntPtr, IntPtr)

Compare deux valeurs au calcul, ce qui est supérieur.

MaxMagnitude(IntPtr, IntPtr)

Compare deux valeurs au calcul, ce qui est supérieur.

Min(IntPtr, IntPtr)

Compare deux valeurs au calcul, ce qui est inférieur.

MinMagnitude(IntPtr, IntPtr)

Compare deux valeurs au calcul, ce qui est inférieur.

Parse(ReadOnlySpan<Char>, IFormatProvider)
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Convertit l’étendue en lecture seule de la représentation de caractères d’un nombre dans un format spécifique au style et à la culture spécifiés en son équivalent entier natif signé.

Parse(String)

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent entier natif signé.

Parse(String, IFormatProvider)

Convertit la représentation sous forme de chaîne d’un nombre dans un format spécifique à la culture spécifié en son équivalent entier natif signé.

Parse(String, NumberStyles)

Convertit la représentation sous forme de chaîne d’un nombre dans un style spécifié en équivalent entier natif signé.

Parse(String, NumberStyles, IFormatProvider)

Convertit la représentation sous forme de chaîne d’un nombre dans un style spécifié et un format spécifique à la culture en son équivalent entier natif signé.

PopCount(IntPtr)

Calcule le nombre de bits définis dans une valeur.

RotateLeft(IntPtr, Int32)

Fait pivoter une valeur à gauche par une quantité donnée.

RotateRight(IntPtr, Int32)

Fait pivoter une valeur à droite d’une quantité donnée.

Sign(IntPtr)

Calcule le signe d’une valeur.

Subtract(IntPtr, Int32)

Soustrait un décalage d’un entier signé.

ToInt32()

Convertit la valeur de cette instance en entier 32 bits signé.

ToInt64()

Convertit la valeur de cette instance en entier 64 bits signé.

ToPointer()

Convertit la valeur de cette instance en pointeur vers un type non spécifié.

ToString()

Convertit la valeur numérique de l'objet IntPtr actuel dans sa représentation sous forme chaîne équivalente.

ToString(IFormatProvider)

Convertit la valeur numérique de cette instance en sa représentation sous forme de chaîne équivalente à l'aide du format spécifié et des informations de format spécifiques à la culture.

ToString(String)

Convertit la valeur numérique de l'objet IntPtr actuel dans sa représentation sous forme chaîne équivalente.

ToString(String, IFormatProvider)

Met en forme la valeur de l’instance actuelle en utilisant le format spécifié.

TrailingZeroCount(IntPtr)

Calcule le nombre de zéros de fin dans une valeur.

TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Tente de mettre en forme la valeur de l’instance actuelle dans l’étendue fournie de caractères.

TryParse(ReadOnlySpan<Char>, IFormatProvider, IntPtr)
TryParse(ReadOnlySpan<Char>, IntPtr)

Convertit l’étendue en lecture seule de la représentation de caractères d’un nombre en son équivalent entier natif signé. Une valeur de retour indique si la conversion a réussi.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, IntPtr)

Convertit l’étendue en lecture seule de la représentation de caractères d’un nombre dans un style et un format spécifique à la culture spécifiés en son équivalent entier natif signé. Une valeur de retour indique si la conversion a réussi.

TryParse(String, IFormatProvider, IntPtr)
TryParse(String, IntPtr)

Convertit la représentation sous forme de chaîne d’un nombre en son équivalent entier natif signé. Une valeur de retour indique si la conversion a réussi.

TryParse(String, NumberStyles, IFormatProvider, IntPtr)

Convertit la représentation sous forme de chaîne d’un nombre dans un style spécifié et un format spécifique à la culture en son équivalent entier natif signé. Une valeur de retour indique si la conversion a réussi.

Opérateurs

Addition(IntPtr, Int32)

Ajoute un décalage à un entier signé.

Equality(IntPtr, IntPtr)

Détermine si deux instances spécifiées de IntPtr sont égales.

Explicit(Int32 to IntPtr)

Convertit la valeur d'un entier 32 bits signé en IntPtr.

Explicit(Int64 to IntPtr)

Convertit la valeur d'un entier 64 bits signé en IntPtr.

Explicit(IntPtr to Int32)

Convertit la valeur du IntPtr spécifié en entier 32 bits signé.

Explicit(IntPtr to Int64)

Convertit la valeur du IntPtr spécifié en entier 64 bits signé.

Explicit(IntPtr to Void*)

Convertit la valeur du IntPtr spécifié en pointeur de type non spécifié.

Cette API n'est pas conforme CLS.

Explicit(Void* to IntPtr)

Convertit le pointeur spécifié vers un type non spécifié en IntPtr.

Cette API n'est pas conforme CLS.

Inequality(IntPtr, IntPtr)

Détermine si deux instances spécifiées de IntPtr ne sont pas égales.

Subtraction(IntPtr, Int32)

Soustrait un décalage d’un entier signé.

Implémentations d’interfaces explicites

IBinaryInteger<IntPtr>.GetByteCount()

Obtient le nombre d’octets qui seront écrits dans le cadre de TryWriteLittleEndian(Span<Byte>, Int32).

IBinaryInteger<IntPtr>.GetShortestBitLength()

Obtient la longueur, en bits, de la représentation complète des deux plus courtes de la valeur actuelle.

IBinaryInteger<IntPtr>.TryWriteBigEndian(Span<Byte>, Int32)

Tente d’écrire la valeur actuelle, au format big-endian, dans une étendue donnée.

IBinaryInteger<IntPtr>.TryWriteLittleEndian(Span<Byte>, Int32)

Tente d’écrire la valeur actuelle, au format little-endian, dans une étendue donnée.

IEquatable<IntPtr>.Equals(IntPtr)

Retourne une valeur qui indique si cette instance est égale à un autre entier signé.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Remplit un objet SerializationInfo des données nécessaires à la sérialisation de l'objet IntPtr actuel.

S’applique à

Cohérence de thread

Ce type est thread-safe.

Voir aussi