UIntPtr.Subtract(UIntPtr, Int32) UIntPtr.Subtract(UIntPtr, Int32) UIntPtr.Subtract(UIntPtr, Int32) UIntPtr.Subtract(UIntPtr, Int32) Method

定義

將不帶正負號指標的值減去位移。Subtracts an offset from the value of an unsigned pointer.

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

參數

pointer
UIntPtr UIntPtr UIntPtr UIntPtr

要減去位移的不帶正負號指標。The unsigned pointer to subtract the offset from.

offset
Int32 Int32 Int32 Int32

要減去的位移。The offset to subtract.

傳回

新的不帶正負號指標,反映將 offset 減去 pointer 的結果。A new unsigned pointer that reflects the subtraction of offset from pointer.

範例

下列範例會具現IntPtr化指向十個元素陣列結尾的物件,然後Subtract呼叫方法,以反向順序逐一查看陣列中的元素。The following example instantiates an IntPtr object that points to the end of a ten-element array, and then calls the Subtract method to iterate the elements in the array in reverse order.

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
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

備註

如果Subtract結果太小而無法表示為指定平臺上的指標,則方法不會擲回例外狀況。The Subtract method does not throw an exception if the result is too small to represent as a pointer on the specified platform. 相反地,減法運算會在未檢查的內容中執行。Instead, the subtraction operation is performed in an unchecked context.

不支援運算子多載或自訂運算子的語言可以使用這個方法來減去不帶正負號指標值的位移。Languages that do not support operator overloading or custom operators can use this method to subtract an offset from the value of an unsigned pointer.

適用於

另請參閱