Sdílet prostřednictvím


UIntPtr.Subtraction(UIntPtr, Int32) Operátor

Definice

Odečte posun od celočíselného čísla bez znaménka.

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

Parametry

pointer
UIntPtr

unativeint

Celé číslo bez znaménka pro odečtení posunu od.

offset
Int32

Posun, který se má odečíst.

Návraty

UIntPtr

unativeint

Nové celé číslo bez znaménka, které odráží odčítání offset od pointer.

Poznámky

Metoda Subtraction definuje operaci odčítání pro UIntPtr objekty. Povolí kód, například následující.

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

Jazyky, které nepodporují vlastní operátory, můžou místo toho metodu Subtract volat.

Operace odčítání nevyvolá výjimku, pokud je výsledek příliš malý, aby se v procesu provádění reprezentoval jako celé číslo bez znaménka. Místo toho se provádí v nezaškrtnutém kontextu.

V jazyce C# od verze 11 a při cílení na modul runtime .NET 7 nebo novější je toto rozhraní API přístupné pouze prostřednictvím reflexe. Operátor odčítání je přímo rozpoznán jazykem a bude postupovat podle normálního chování jazyka pro odčítání operací, včetně přetečení v checked kontextu, pokud je výsledek příliš malý, aby představoval.

Platí pro

Viz také