UIntPtr.Subtraction(UIntPtr, Int32) Operatör

Tanım

İşaretsiz bir tamsayıdan uzaklığı çıkarır.

public:
 static UIntPtr operator -(UIntPtr pointer, int offset);
public static UIntPtr operator -(UIntPtr pointer, int offset);
static member ( - ) : unativeint * int -> unativeint
Public Shared Operator - (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 offsetçıkarma pointer işlemini yansıtan yeni bir işaretsiz tamsayı.

Açıklamalar

Subtraction yöntemi, nesneler için UIntPtr çıkarma işlemini tanımlar. Aşağıdaki gibi kodu etkinleştirir.

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 = ptr - ctr;
   Console.Write("{0}   ", newPtr);
}
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 = ptr - UIntPtr(uint i)
    printf $"{newPtr}   "
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

Özel işleçleri desteklemeyen diller bunun yerine yöntemini çağırabilir Subtract .

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

C# sürümünde sürüm 11'den başlayarak ve .NET 7 veya üzeri çalışma zamanını hedeflerken, bu API'ye yalnızca yansıma yoluyla erişilebilir. Çıkarma işleci doğrudan dil tarafından tanınır ve sonuç temsil edilemeyecek kadar küçükse bir checked bağlamda taşma da dahil olmak üzere çıkarma işlemleri için normal dil davranışını izler.

Şunlara uygulanır

Ayrıca bkz.