UIntPtr.Subtract(UIntPtr, Int32) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.