Aracılığıyla paylaş


UIntPtr.Subtract(UIntPtr, Int32) Yöntem

Tanım

Bir uzaklığı işaretsiz tamsayıdan çıkarır.

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

Parametreler

pointer
UIntPtr

unativeint

Uzaklığı çıkarmak için işaretsiz tamsayı.

offset
Int32

Çıkaracak uzaklık.

Döndürülenler

UIntPtr

unativeint

'den pointerçıkarma offset işlemini yansıtan yeni bir işaretsiz tamsayı.

Örnekler

Aşağıdaki örnek, on öğeli bir dizinin sonuna işaret eden bir IntPtr nesnenin örneğini oluşturur ve ardından dizideki öğeleri ters sırada yinelemek için yöntemini çağırır Subtract .

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

Açıklamalar

Yöntem Subtract , sonuç yürütme işleminde işaretsiz bir tamsayı olarak temsil edilemeyecek kadar küçükse bir özel durum oluşturmaz. Bunun yerine çıkarma işlemi denetlenmeyen bir bağlamda gerçekleştirilir.

İşleç aşırı yüklemesini veya özel işleçleri desteklemeyen diller, işaretçinin değerinden uzaklığı çıkarmak için bu yöntemi kullanabilir.

Şunlara uygulanır

Ayrıca bkz.