IntPtr Struktur

Definisi

Mewakili bilangan bulat bertanda di mana lebar bit sama dengan penunjuk.

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, bool>, System::Numerics::IDecrementOperators<IntPtr>, System::Numerics::IDivisionOperators<IntPtr, IntPtr, IntPtr>, System::Numerics::IEqualityOperators<IntPtr, IntPtr, bool>, 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, int, 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 : IComparable<IntPtr>, IEquatable<IntPtr>, IParsable<IntPtr>, ISpanParsable<IntPtr>, IUtf8SpanParsable<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, bool>, System::Numerics::IDecrementOperators<IntPtr>, System::Numerics::IDivisionOperators<IntPtr, IntPtr, IntPtr>, System::Numerics::IEqualityOperators<IntPtr, IntPtr, bool>, 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, int, 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,bool>, System.Numerics.IDecrementOperators<IntPtr>, System.Numerics.IDivisionOperators<IntPtr,IntPtr,IntPtr>, System.Numerics.IEqualityOperators<IntPtr,IntPtr,bool>, 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,int,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 readonly struct IntPtr : IComparable<IntPtr>, IEquatable<IntPtr>, IParsable<IntPtr>, ISpanParsable<IntPtr>, IUtf8SpanParsable<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,bool>, System.Numerics.IDecrementOperators<IntPtr>, System.Numerics.IDivisionOperators<IntPtr,IntPtr,IntPtr>, System.Numerics.IEqualityOperators<IntPtr,IntPtr,bool>, 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,int,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, bool>
    interface IEqualityOperators<nativeint, nativeint, bool>
    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, int, nativeint>
    interface IMinMaxValue<nativeint>
    interface ISignedNumber<nativeint>
    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, bool>
    interface IEqualityOperators<nativeint, nativeint, bool>
    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 IUtf8SpanFormattable
    interface IUtf8SpanParsable<nativeint>
    interface IShiftOperators<nativeint, int, nativeint>
    interface IMinMaxValue<nativeint>
    interface ISignedNumber<nativeint>
    interface ISerializable
type nativeint = struct
    interface IFormattable
    interface IParsable<nativeint>
    interface ISpanFormattable
    interface ISpanParsable<nativeint>
    interface IUtf8SpanFormattable
    interface IUtf8SpanParsable<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, bool>
    interface IEqualityOperators<nativeint, nativeint, bool>
    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, int, 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, Boolean), IDecrementOperators(Of IntPtr), IDivisionOperators(Of IntPtr, IntPtr, IntPtr), IEqualityOperators(Of IntPtr, IntPtr, Boolean), 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, Integer, IntPtr), ISignedNumber(Of IntPtr), ISpanParsable(Of IntPtr), ISubtractionOperators(Of IntPtr, IntPtr, IntPtr), IUnaryNegationOperators(Of IntPtr, IntPtr), IUnaryPlusOperators(Of IntPtr, IntPtr)
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, Boolean), IDecrementOperators(Of IntPtr), IDivisionOperators(Of IntPtr, IntPtr, IntPtr), IEqualityOperators(Of IntPtr, IntPtr, Boolean), 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, Integer, IntPtr), ISignedNumber(Of IntPtr), ISpanParsable(Of IntPtr), ISubtractionOperators(Of IntPtr, IntPtr, IntPtr), IUnaryNegationOperators(Of IntPtr, IntPtr), IUnaryPlusOperators(Of IntPtr, IntPtr), IUtf8SpanParsable(Of IntPtr)
Public Structure IntPtr
Implements IEquatable(Of IntPtr), ISerializable
Public Structure IntPtr
Implements ISerializable
Warisan
IntPtr
Atribut
Penerapan
IComparable IComparable<IntPtr> IEquatable<IntPtr> IFormattable ISerializable ISpanFormattable IComparable<TSelf> 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> IComparisonOperators<IntPtr,IntPtr,Boolean> IComparisonOperators<TSelf,TSelf,Boolean> IDecrementOperators<IntPtr> IDecrementOperators<TSelf> IDivisionOperators<IntPtr,IntPtr,IntPtr> IDivisionOperators<TSelf,TSelf,TSelf> IEqualityOperators<IntPtr,IntPtr,Boolean> IEqualityOperators<TSelf,TOther,TResult> IEqualityOperators<TSelf,TSelf,Boolean> 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> IShiftOperators<IntPtr,Int32,IntPtr> IShiftOperators<TSelf,Int32,TSelf> ISignedNumber<IntPtr> ISubtractionOperators<IntPtr,IntPtr,IntPtr> ISubtractionOperators<TSelf,TSelf,TSelf> IUnaryNegationOperators<IntPtr,IntPtr> IUnaryNegationOperators<TSelf,TSelf> IUnaryPlusOperators<IntPtr,IntPtr> IUnaryPlusOperators<TSelf,TSelf> IUtf8SpanFormattable IUtf8SpanParsable<IntPtr> IUtf8SpanParsable<TSelf>

Contoh

Contoh berikut menggunakan pointer terkelola untuk membalikkan karakter dalam array. Setelah menginisialisasi String objek dan mendapatkan panjangnya, objek melakukan hal berikut:

  1. Marshal.StringToHGlobalAnsi Memanggil metode untuk menyalin string Unicode ke memori yang tidak dikelola sebagai karakter ANSI (satu byte). Metode mengembalikan IntPtr objek yang menunjuk ke awal string yang tidak dikelola. Contoh Visual Basic menggunakan penunjuk ini secara langsung; dalam contoh C++, F# dan C#, itu ditransmisikan ke penunjuk ke byte.

  2. Marshal.AllocHGlobal Memanggil metode untuk mengalokasikan jumlah byte yang sama dengan string yang tidak dikelola. Metode mengembalikan IntPtr objek yang menunjuk ke awal blok memori yang tidak dikelola. Contoh Visual Basic menggunakan penunjuk ini secara langsung; dalam contoh C++, F# dan C#, itu ditransmisikan ke penunjuk ke byte.

  3. Contoh Visual Basic mendefinisikan variabel bernama offset yang sama dengan panjang string ANSI. Ini digunakan untuk menentukan offset ke dalam memori yang tidak dikelola tempat karakter berikutnya dalam string ANSI disalin. Karena nilai awalnya adalah panjang string, operasi salin akan menyalin karakter dari awal string ke akhir blok memori.

    Contoh C#, F# dan C++ memanggil ToPointer metode untuk mendapatkan penunjuk yang tidak dikelola ke alamat awal string dan blok memori yang tidak dikelola, dan mereka menambahkan satu kurang dari panjang string ke alamat awal string ANSI. Karena penunjuk string yang tidak dikelola sekarang menunjuk ke akhir string, operasi salin akan menyalin karakter dari akhir string ke awal blok memori.

  4. Menggunakan perulangan untuk menyalin setiap karakter dari string ke blok memori yang tidak dikelola.

    Contoh Visual Basic memanggil Marshal.ReadByte(IntPtr, Int32) metode untuk membaca byte (atau karakter satu byte) pada offset tertentu dari penunjuk terkelola ke string ANSI. Offset bertahap dengan setiap iterasi perulangan. Kemudian memanggil Marshal.WriteByte(IntPtr, Int32, Byte) metode untuk menulis byte ke alamat memori yang ditentukan oleh alamat awal blok memori yang tidak dikelola ditambah offset. Kemudian dekremen offset.

    Contoh C#, F# dan C++ melakukan operasi salin, lalu menurunkan penunjuk ke alamat lokasi berikutnya dalam string ANSI yang tidak dikelola dan menambah penunjuk ke alamat berikutnya di blok yang tidak dikelola.

  5. Semua contoh memanggil Marshal.PtrToStringAnsi untuk mengonversi blok memori yang tidak dikelola yang berisi string ANSI yang disalin ke objek Unicode String terkelola.

  6. Setelah menampilkan string asli dan terbalik, semua contoh memanggil FreeHGlobal metode untuk membebaskan memori yang dialokasikan untuk string ANSI yang tidak dikelola dan blok memori yang tidak dikelola.

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

Keterangan

Jenis IntPtr ini dirancang untuk menjadi bilangan bulat yang ukurannya sama dengan penunjuk. Artinya, instans jenis ini diharapkan menjadi 32 bit dalam proses 32-bit dan 64 bit dalam proses 64-bit.

Jenis ini IntPtr dapat digunakan oleh bahasa yang mendukung penunjuk dan sebagai cara umum untuk merujuk ke data antar bahasa yang melakukan dan tidak mendukung pointer.

IntPtr objek juga dapat digunakan untuk menahan handel. Misalnya, instans IntPtr digunakan secara ekstensif di System.IO.FileStream kelas untuk menyimpan handel file.

Catatan

Menggunakan IntPtr sebagai penunjuk atau handel rentan kesalahan dan tidak aman. Ini hanyalah jenis bilangan bulat yang dapat digunakan sebagai format pertukaran untuk penunjuk dan handel karena ukurannya yang sama. Di luar persyaratan pertukaran tertentu, seperti untuk meneruskan data ke bahasa yang tidak mendukung penunjuk, pointer yang ditik dengan benar harus digunakan untuk mewakili penunjuk dan SafeHandle harus digunakan untuk mewakili handel.

Jenis ini mengimplementasikan ISerializable. Di .NET 5 dan versi yang lebih baru, jenis ini juga mengimplementasikan IFormattable antarmuka. Dalam .NET 7 dan versi yang lebih baru, jenis ini juga mengimplementasikan IBinaryInteger<TSelf>antarmuka , IMinMaxValue<TSelf>, dan ISignedNumber<TSelf> .

Dalam C# mulai dari versi 9.0, Anda dapat menggunakan jenis bawaan nint untuk menentukan bilangan bulat berukuran asli. Jenis ini diwakili oleh IntPtr jenis secara internal dan menyediakan operasi dan konversi yang sesuai untuk jenis bilangan bulat. Untuk informasi selengkapnya, lihat jenis nint dan nuint.

Dalam C# mulai dari versi 11 dan saat menargetkan runtime .NET 7 atau yang lebih baru, nint adalah alias untuk IntPtr dengan cara yang sama yaitu int alias untuk Int32.

Konstruktor

IntPtr(Int32)

Menginisialisasi instans baru menggunakan bilangan IntPtr bulat bertanda tangan 32-bit yang ditentukan.

IntPtr(Int64)

Menginisialisasi instans baru menggunakan bilangan IntPtr bulat bertanda tangan 64-bit yang ditentukan.

IntPtr(Void*)

Menginisialisasi instans baru menggunakan IntPtr penunjuk yang ditentukan ke jenis yang tidak ditentukan.

Bidang

Zero

Bidang baca-saja yang mewakili bilangan bulat bertanda tangan yang telah diinisialisasi ke nol.

Properti

MaxValue

Mendapatkan nilai terbesar yang mungkin dari IntPtr.

MinValue

Mendapatkan nilai sekecil mungkin dari IntPtr.

Size

Mendapatkan ukuran instans ini.

Metode

Abs(IntPtr)

Menghitung absolut nilai.

Add(IntPtr, Int32)

Menambahkan offset ke bilangan bulat yang ditandatangani.

Clamp(IntPtr, IntPtr, IntPtr)

Menjepit nilai ke nilai minimum dan maksimum inklusif.

CompareTo(IntPtr)

Membandingkan instans saat ini dengan objek lain dengan jenis yang sama dan mengembalikan bilangan bulat yang menunjukkan apakah instans saat ini mendahului, mengikuti, atau terjadi dalam posisi yang sama dalam urutan pengurutan seperti objek lainnya.

CompareTo(Object)

Membandingkan instans saat ini dengan objek lain dengan jenis yang sama dan mengembalikan bilangan bulat yang menunjukkan apakah instans saat ini mendahului, mengikuti, atau terjadi dalam posisi yang sama dalam urutan pengurutan seperti objek lainnya.

CopySign(IntPtr, IntPtr)

Menyalin tanda nilai ke tanda nilai lain.

CreateChecked<TOther>(TOther)

Membuat instans jenis saat ini dari nilai, melemparkan pengecualian luapan untuk nilai apa pun yang berada di luar rentang yang dapat diwakili dari jenis saat ini.

CreateSaturating<TOther>(TOther)

Membuat instans jenis saat ini dari nilai, menjenuhkan nilai apa pun yang berada di luar rentang yang dapat diwakili dari jenis saat ini.

CreateTruncating<TOther>(TOther)

Membuat instans jenis saat ini dari nilai, memotong nilai apa pun yang berada di luar rentang yang dapat diwakili dari jenis saat ini.

DivRem(IntPtr, IntPtr)

Menghitung quotient dan sisa dari dua nilai.

Equals(IntPtr)

Menunjukkan apakah objek saat ini sama dengan objek lain dengan jenis yang sama.

Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

GetHashCode()

Mengembalikan kode hash untuk instans ini.

IsEvenInteger(IntPtr)

Menentukan apakah nilai mewakili angka integral genap.

IsNegative(IntPtr)

Menentukan apakah nilai negatif.

IsOddInteger(IntPtr)

Menentukan apakah nilai mewakili angka integral ganjil.

IsPositive(IntPtr)

Menentukan apakah nilai positif.

IsPow2(IntPtr)

Menentukan apakah nilai adalah kekuatan dua.

LeadingZeroCount(IntPtr)

Menghitung jumlah nol di depannya dalam sebuah nilai.

Log2(IntPtr)

Menghitung log2 dari nilai.

Max(IntPtr, IntPtr)

Membandingkan dua nilai dengan komputasi yang lebih besar.

MaxMagnitude(IntPtr, IntPtr)

Membandingkan dua nilai dengan komputasi yang lebih besar.

Min(IntPtr, IntPtr)

Membandingkan dua nilai dengan komputasi yang lebih kecil.

MinMagnitude(IntPtr, IntPtr)

Membandingkan dua nilai dengan komputasi yang lebih kecil.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Mengurai rentang karakter UTF-8 menjadi nilai.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Mengurai rentang karakter UTF-8 menjadi nilai.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Mengurai rentang karakter menjadi nilai.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Mengonversi rentang baca-saja dari representasi karakter dari angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat asli yang ditandatangani setara.

Parse(String)

Mengonversi representasi string angka ke bilangan bulat asli yang ditandatangani setara.

Parse(String, IFormatProvider)

Mengonversi representasi string angka dalam format khusus budaya tertentu ke bilangan bulat asli yang ditandatangani setara.

Parse(String, NumberStyles)

Mengonversi representasi string angka dalam gaya tertentu ke bilangan bulat asli yang ditandatangani setara.

Parse(String, NumberStyles, IFormatProvider)

Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat asli yang ditandatangani setara.

PopCount(IntPtr)

Menghitung jumlah bit yang diatur dalam nilai.

RotateLeft(IntPtr, Int32)

Memutar nilai yang ditinggalkan oleh jumlah tertentu.

RotateRight(IntPtr, Int32)

Memutar nilai tepat dengan jumlah tertentu.

Sign(IntPtr)

Menghitung tanda nilai.

Subtract(IntPtr, Int32)

Mengurangi offset dari bilangan bulat yang ditandatangani.

ToInt32()

Mengonversi nilai instans ini menjadi bilangan bulat bertanda tangan 32-bit.

ToInt64()

Mengonversi nilai instans ini menjadi bilangan bulat bertanda tangan 64-bit.

ToPointer()

Mengonversi nilai instans ini menjadi penunjuk ke jenis yang tidak ditentukan.

ToString()

Mengonversi nilai numerik objek saat ini IntPtr ke representasi string yang setara.

ToString(IFormatProvider)

Mengonversi nilai numerik instans ini ke representasi string yang setara menggunakan format yang ditentukan dan informasi format khusus budaya.

ToString(String)

Mengonversi nilai numerik objek saat ini IntPtr ke representasi string yang setara.

ToString(String, IFormatProvider)

Memformat nilai instans saat ini menggunakan format yang ditentukan.

TrailingZeroCount(IntPtr)

Menghitung jumlah nol berikutnya dalam nilai.

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

Mencoba memformat nilai instans saat ini sebagai UTF-8 ke dalam rentang byte yang disediakan.

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

Mencoba memformat nilai instans saat ini ke dalam rentang karakter yang disediakan.

TryParse(ReadOnlySpan<Byte>, IFormatProvider, IntPtr)

Mencoba mengurai rentang karakter UTF-8 menjadi nilai.

TryParse(ReadOnlySpan<Byte>, IntPtr)

Mencoba mengonversi rentang karakter UTF-8 yang berisi representasi string angka ke bilangan bulat yang ditandatangani setara.

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

Mencoba mengurai rentang karakter UTF-8 menjadi nilai.

TryParse(ReadOnlySpan<Char>, IFormatProvider, IntPtr)

Mencoba mengurai string ke dalam nilai.

TryParse(ReadOnlySpan<Char>, IntPtr)

Mengonversi rentang baca-saja dari representasi karakter dari angka ke bilangan bulat asli yang ditandatangani setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil.

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

Mengonversi rentang baca-saja dari representasi karakter dari angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat asli yang ditandatangani setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil.

TryParse(String, IFormatProvider, IntPtr)

Mencoba mengurai string ke dalam nilai.

TryParse(String, IntPtr)

Mengonversi representasi string angka ke bilangan bulat asli yang ditandatangani setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil.

TryParse(String, NumberStyles, IFormatProvider, IntPtr)

Mengonversi representasi string angka dalam gaya tertentu dan format khusus budaya ke bilangan bulat asli yang ditandatangani setara. Nilai yang dikembalikan menunjukkan apakah konversi berhasil.

Operator

Addition(IntPtr, Int32)

Menambahkan offset ke bilangan bulat yang ditandatangani.

Equality(IntPtr, IntPtr)

Menentukan apakah dua instans IntPtr yang ditentukan sama.

Explicit(Int32 to IntPtr)

Mengonversi nilai bilangan bulat bertanda tangan 32-bit menjadi IntPtr.

Explicit(Int64 to IntPtr)

Mengonversi nilai bilangan bulat bertanda tangan 64-bit menjadi IntPtr.

Explicit(IntPtr to Int32)

Mengonversi nilai yang ditentukan IntPtr menjadi bilangan bulat bertanda tangan 32-bit.

Explicit(IntPtr to Int64)

Mengonversi nilai yang ditentukan IntPtr menjadi bilangan bulat bertanda tangan 64-bit.

Explicit(IntPtr to Void*)

Mengonversi nilai yang ditentukan IntPtr ke penunjuk ke tipe yang tidak ditentukan.

API ini bukan kompatibel CLS.

Explicit(Void* to IntPtr)

Mengonversi penunjuk yang ditentukan ke tipe yang tidak ditentukan menjadi IntPtr.

API ini bukan kompatibel CLS.

Inequality(IntPtr, IntPtr)

Menentukan apakah dua instans IntPtr yang ditentukan tidak sama.

Subtraction(IntPtr, Int32)

Mengurangi offset dari bilangan bulat yang ditandatangani.

Implementasi Antarmuka Eksplisit

IAdditionOperators<IntPtr,IntPtr,IntPtr>.Addition(IntPtr, IntPtr)

Menambahkan dua nilai bersama-sama untuk menghitung jumlahnya.

IAdditionOperators<IntPtr,IntPtr,IntPtr>.CheckedAddition(IntPtr, IntPtr)

Menambahkan dua nilai bersama-sama untuk menghitung jumlahnya.

IAdditiveIdentity<IntPtr,IntPtr>.AdditiveIdentity

Mendapatkan identitas aditif dari jenis saat ini.

IBinaryInteger<IntPtr>.GetByteCount()

Mendapatkan jumlah byte yang akan ditulis sebagai bagian TryWriteLittleEndian(Span<Byte>, Int32)dari .

IBinaryInteger<IntPtr>.GetShortestBitLength()

Mendapatkan panjang, dalam bit, dari representasi pelengkap dua terpendek dari nilai saat ini.

IBinaryInteger<IntPtr>.TryReadBigEndian(ReadOnlySpan<Byte>, Boolean, IntPtr)

Mewakili bilangan bulat bertanda di mana lebar bit sama dengan penunjuk.

IBinaryInteger<IntPtr>.TryReadLittleEndian(ReadOnlySpan<Byte>, Boolean, IntPtr)

Mewakili bilangan bulat bertanda di mana lebar bit sama dengan penunjuk.

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

Mencoba menulis nilai saat ini, dalam format big-endian, ke rentang tertentu.

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

Mencoba menulis nilai saat ini, dalam format little-endian, ke rentang tertentu.

IBinaryNumber<IntPtr>.AllBitsSet

Mendapatkan instans jenis biner tempat semua bit diatur.

IBitwiseOperators<IntPtr,IntPtr,IntPtr>.BitwiseAnd(IntPtr, IntPtr)

Menghitung bitwise-dan dari dua nilai.

IBitwiseOperators<IntPtr,IntPtr,IntPtr>.BitwiseOr(IntPtr, IntPtr)

Menghitung bitwise-atau dua nilai.

IBitwiseOperators<IntPtr,IntPtr,IntPtr>.ExclusiveOr(IntPtr, IntPtr)

Menghitung eksklusif atau dari dua nilai.

IBitwiseOperators<IntPtr,IntPtr,IntPtr>.OnesComplement(IntPtr)

Menghitung representasi ones-complement dari nilai tertentu.

IComparisonOperators<IntPtr,IntPtr,Boolean>.GreaterThan(IntPtr, IntPtr)

Membandingkan dua nilai untuk menentukan mana yang lebih besar.

IComparisonOperators<IntPtr,IntPtr,Boolean>.GreaterThanOrEqual(IntPtr, IntPtr)

Membandingkan dua nilai untuk menentukan mana yang lebih besar atau sama.

IComparisonOperators<IntPtr,IntPtr,Boolean>.LessThan(IntPtr, IntPtr)

Membandingkan dua nilai untuk menentukan mana yang lebih sedikit.

IComparisonOperators<IntPtr,IntPtr,Boolean>.LessThanOrEqual(IntPtr, IntPtr)

Membandingkan dua nilai untuk menentukan mana yang kurang atau sama.

IDecrementOperators<IntPtr>.CheckedDecrement(IntPtr)

Mengurangi nilai.

IDecrementOperators<IntPtr>.Decrement(IntPtr)

Mengurangi nilai.

IDivisionOperators<IntPtr,IntPtr,IntPtr>.Division(IntPtr, IntPtr)

Membagi satu nilai dengan nilai lain untuk menghitung quotient mereka.

IEquatable<IntPtr>.Equals(IntPtr)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan bilangan bulat bertanda tangan lainnya.

IIncrementOperators<IntPtr>.CheckedIncrement(IntPtr)

Menaikkan nilai.

IIncrementOperators<IntPtr>.Increment(IntPtr)

Menaikkan nilai.

IMinMaxValue<IntPtr>.MaxValue

Mendapatkan nilai maksimum dari jenis saat ini.

IMinMaxValue<IntPtr>.MinValue

Mendapatkan nilai minimum dari jenis saat ini.

IModulusOperators<IntPtr,IntPtr,IntPtr>.Modulus(IntPtr, IntPtr)

Membagi dua nilai bersama-sama untuk menghitung modulus atau sisanya.

IMultiplicativeIdentity<IntPtr,IntPtr>.MultiplicativeIdentity

Mendapatkan identitas multiplikatif dari jenis saat ini.

IMultiplyOperators<IntPtr,IntPtr,IntPtr>.CheckedMultiply(IntPtr, IntPtr)

Mengalikan dua nilai bersama-sama untuk menghitung produknya.

IMultiplyOperators<IntPtr,IntPtr,IntPtr>.Multiply(IntPtr, IntPtr)

Mengalikan dua nilai bersama-sama untuk menghitung produknya.

INumber<IntPtr>.MaxNumber(IntPtr, IntPtr)

Membandingkan dua nilai dengan komputasi yang lebih besar dan mengembalikan nilai lainnya jika input adalah NaN.

INumber<IntPtr>.MinNumber(IntPtr, IntPtr)

Membandingkan dua nilai dengan komputasi yang lebih kecil dan mengembalikan nilai lainnya jika input adalah NaN.

INumberBase<IntPtr>.IsCanonical(IntPtr)

Menentukan apakah nilai berada dalam representasi kanonisnya.

INumberBase<IntPtr>.IsComplexNumber(IntPtr)

Menentukan apakah nilai mewakili bilangan kompleks.

INumberBase<IntPtr>.IsFinite(IntPtr)

Menentukan apakah nilai terbatas.

INumberBase<IntPtr>.IsImaginaryNumber(IntPtr)

Menentukan apakah nilai mewakili angka imajiner murni.

INumberBase<IntPtr>.IsInfinity(IntPtr)

Menentukan apakah nilai tidak terbatas.

INumberBase<IntPtr>.IsInteger(IntPtr)

Menentukan apakah nilai mewakili angka integral.

INumberBase<IntPtr>.IsNaN(IntPtr)

Menentukan apakah nilainya adalah NaN.

INumberBase<IntPtr>.IsNegativeInfinity(IntPtr)

Menentukan apakah nilai adalah infinity negatif.

INumberBase<IntPtr>.IsNormal(IntPtr)

Menentukan apakah nilai normal.

INumberBase<IntPtr>.IsPositiveInfinity(IntPtr)

Menentukan apakah nilai adalah infinitas positif.

INumberBase<IntPtr>.IsRealNumber(IntPtr)

Menentukan apakah nilai mewakili angka riil.

INumberBase<IntPtr>.IsSubnormal(IntPtr)

Menentukan apakah nilainya subnormal.

INumberBase<IntPtr>.IsZero(IntPtr)

Menentukan apakah nilai adalah nol.

INumberBase<IntPtr>.MaxMagnitudeNumber(IntPtr, IntPtr)

Membandingkan dua nilai dengan komputasi yang memiliki besaran lebih besar dan mengembalikan nilai lainnya jika input adalah NaN.

INumberBase<IntPtr>.MinMagnitudeNumber(IntPtr, IntPtr)

Membandingkan dua nilai dengan komputasi yang memiliki besaran yang lebih kecil dan mengembalikan nilai lainnya jika input adalah NaN.

INumberBase<IntPtr>.One

Mendapatkan nilai 1 untuk jenis tersebut.

INumberBase<IntPtr>.Radix

Mendapatkan radix, atau basis, untuk jenisnya.

INumberBase<IntPtr>.TryConvertFromChecked<TOther>(TOther, IntPtr)

Mewakili bilangan bulat bertanda di mana lebar bit sama dengan penunjuk.

INumberBase<IntPtr>.TryConvertFromSaturating<TOther>(TOther, IntPtr)

Mewakili bilangan bulat bertanda di mana lebar bit sama dengan penunjuk.

INumberBase<IntPtr>.TryConvertFromTruncating<TOther>(TOther, IntPtr)

Mewakili bilangan bulat bertanda di mana lebar bit sama dengan penunjuk.

INumberBase<IntPtr>.TryConvertToChecked<TOther>(IntPtr, TOther)

Mencoba mengonversi instans jenis saat ini ke jenis lain, melemparkan pengecualian luapan untuk nilai apa pun yang berada di luar rentang yang dapat diwakili dari jenis saat ini.

INumberBase<IntPtr>.TryConvertToSaturating<TOther>(IntPtr, TOther)

Mencoba mengonversi instans dari jenis saat ini ke jenis lain, menjenuhkan nilai apa pun yang berada di luar rentang yang dapat diwakili dari jenis saat ini.

INumberBase<IntPtr>.TryConvertToTruncating<TOther>(IntPtr, TOther)

Mencoba mengonversi instans dari jenis saat ini ke jenis lain, memotong nilai apa pun yang berada di luar rentang yang dapat diwakili dari jenis saat ini.

INumberBase<IntPtr>.Zero

Mendapatkan nilai 0 untuk jenis tersebut.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Mengisi objek dengan data yang SerializationInfo diperlukan untuk menserialisasikan objek saat ini IntPtr .

IShiftOperators<IntPtr,Int32,IntPtr>.LeftShift(IntPtr, Int32)

Menggeser nilai yang ditinggalkan oleh jumlah tertentu.

IShiftOperators<IntPtr,Int32,IntPtr>.RightShift(IntPtr, Int32)

Menggeser nilai ke kanan dengan jumlah tertentu.

IShiftOperators<IntPtr,Int32,IntPtr>.UnsignedRightShift(IntPtr, Int32)

Menggeser nilai ke kanan dengan jumlah tertentu.

ISignedNumber<IntPtr>.NegativeOne

Mendapatkan nilai -1 untuk jenis tersebut.

ISubtractionOperators<IntPtr,IntPtr,IntPtr>.CheckedSubtraction(IntPtr, IntPtr)

Mengurangi dua nilai untuk menghitung perbedaannya.

ISubtractionOperators<IntPtr,IntPtr,IntPtr>.Subtraction(IntPtr, IntPtr)

Mengurangi dua nilai untuk menghitung perbedaannya.

IUnaryNegationOperators<IntPtr,IntPtr>.CheckedUnaryNegation(IntPtr)

Menghitung negasi unary yang diperiksa dari nilai.

IUnaryNegationOperators<IntPtr,IntPtr>.UnaryNegation(IntPtr)

Menghitung negasi nilai yang tidak biasa.

IUnaryPlusOperators<IntPtr,IntPtr>.UnaryPlus(IntPtr)

Menghitung nilai plus unary.

Berlaku untuk

Keamanan Thread

Jenis ini aman untuk utas.

Lihat juga