UIntPtr.Subtract(UIntPtr, Int32) Metode

Definisi

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

UIntPtr

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.

Berlaku untuk

Lihat juga