IntPtr Struktur
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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:
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.
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.
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.
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 dekremenoffset
.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.
Semua contoh memanggil Marshal.PtrToStringAnsi untuk mengonversi blok memori yang tidak dikelola yang berisi string ANSI yang disalin ke objek Unicode String terkelola.
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 |
INumber<IntPtr>.MinNumber(IntPtr, IntPtr) |
Membandingkan dua nilai dengan komputasi yang lebih kecil dan mengembalikan nilai lainnya jika input adalah |
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 |
INumberBase<IntPtr>.MinMagnitudeNumber(IntPtr, IntPtr) |
Membandingkan dua nilai dengan komputasi yang memiliki besaran yang lebih kecil dan mengembalikan nilai lainnya jika input adalah |
INumberBase<IntPtr>.MultiplyAddEstimate(IntPtr, IntPtr, IntPtr) |
Mewakili bilangan bulat bertanda di mana lebar bit sama dengan penunjuk. |
INumberBase<IntPtr>.One |
Mendapatkan nilai |
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 |
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 |
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk