Sdílet prostřednictvím


UIntPtr.Subtract(UIntPtr, Int32) Metoda

Definice

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

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

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.

Příklady

Následující příklad vytvoří instanci IntPtr objektu, který odkazuje na konec pole deseti prvků, a potom volá metodu Subtract iterace prvků v poli v obráceném pořadí.

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

Poznámky

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

Jazyky, které nepodporují přetížení operátoru nebo vlastní operátory mohou tuto metodu použít k odečtení posunu od hodnoty ukazatele.

Platí pro

Viz také