UIntPtr.Subtract(UIntPtr, Int32) Metode
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.
Mengurangi offset dari bilangan bulat yang tidak ditandatangani.
public:
static UIntPtr Subtract(UIntPtr pointer, int offset);
public static UIntPtr Subtract(UIntPtr pointer, int offset);
static member Subtract : unativeint * int -> unativeint
Public Shared Function Subtract (pointer As UIntPtr, offset As Integer) As UIntPtr
Parameter
- pointer
-
UIntPtr
unativeint
Bilangan bulat yang tidak ditandatangani untuk mengurangi offset.
- offset
- Int32
Offset untuk mengurangi.
Mengembalikan
unativeint
Bilangan bulat baru yang tidak ditandatangani yang mencerminkan pengurangan dari offsetpointer.
Contoh
Contoh berikut membuat instans IntPtr objek yang menunjuk ke akhir array sepuluh elemen, lalu memanggil Subtract metode untuk mengulangi elemen dalam array dalam urutan terbalik.
using System;
public class Example
{
public static void Main()
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
UIntPtr ptr = (UIntPtr) arr[arr.GetUpperBound(0)];
for (int ctr = 0; ctr <= arr.GetUpperBound(0); ctr++)
{
UIntPtr newPtr = UIntPtr.Subtract(ptr, ctr);
Console.Write("{0} ", newPtr);
}
}
}
// The example displays the following output:
// 10 9 8 7 6 5 4 3 2 1
open System
let arr = [| 1; 2; 3; 4; 5; 6; 7; 8; 9; 10 |]
let ptr = UIntPtr(uint arr[arr.GetUpperBound 0])
for i = 0 to arr.GetUpperBound 0 do
let newPtr = UIntPtr.Subtract(ptr, i)
printf $"{newPtr} "
// The example displays the following output:
// 10 9 8 7 6 5 4 3 2 1
Module Example
Public Sub Main()
Dim arr() As Integer = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Dim ptr As UIntPtr = CType(arr(arr.GetUpperBound(0)), UIntPtr)
For ctr As Integer= 0 To arr.GetUpperBound(0)
Dim newPtr As UIntPtr = UIntPtr.Subtract(ptr, ctr)
Console.Write("{0} ", newPtr)
Next
End Sub
End Module
' The example displays the following output:
' 10 9 8 7 6 5 4 3 2 1
Keterangan
Metode Subtract ini tidak memberikan pengecualian jika hasilnya terlalu kecil untuk diwakili sebagai bilangan bulat yang tidak ditandatangani dalam proses eksekusi. Sebagai gantinya, operasi pengurangan dilakukan dalam konteks yang tidak dicentang.
Bahasa yang tidak mendukung kelebihan beban operator atau operator kustom dapat menggunakan metode ini untuk mengurangi offset dari nilai pointer.