이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

IntPtr.Subtract 메서드 (IntPtr, Int32)

.NET Framework (current version)
 

게시 날짜: 2016년 11월

포인터의 값에서 오프셋을 뺍니다.

네임스페이스:   System
어셈블리:  mscorlib(mscorlib.dll에 있음)

public static IntPtr Subtract(
	IntPtr pointer,
	int offset
)

매개 변수

pointer
Type: System.IntPtr

오프셋을 뺄 포인터입니다.

offset
Type: System.Int32

뺄 오프셋입니다.

반환 값

Type: System.IntPtr

offset에서 pointer 빼기를 반영하는 새 포인터입니다.

Subtract 메서드 결과 너무 작아서 지정된 된 플랫폼에 대 한 포인터로 나타낼 수 없는 경우 예외를 throw 하지 않습니다. 대신, 빼기 연산은 unchecked 컨텍스트에서 수행 됩니다.

연산자 오버 로드 또는 사용자 지정 연산자를 지원 하지 않는 언어에 대 한 포인터의 값에서 오프셋을 뺄이 메서드를 사용할 수 있습니다.

다음 예제는 IntPtr 개체 10 개 요소 배열의 끝을 가리키고 다음 호출 하는 Subtract 배열의 요소를 역순으로 반복 하는 방법입니다.

using System;
using System.Runtime.InteropServices;

public class Example
{
   public static void Main()
   {
      int[] arr = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
      // Get the size of a single array element.
      int size = sizeof(int);
      unsafe {
         fixed(int* pend = &arr[arr.GetUpperBound(0)]) {
            IntPtr ptr = new IntPtr(pend);
            for (int ctr = 0; ctr < arr.Length; ctr++)
            {
               IntPtr newPtr = IntPtr.Subtract(ptr, ctr * size);
               Console.Write("{0}   ", Marshal.ReadInt32(newPtr));
            }
         }
      }
   }
}
// The example displays the following output:
//       20   18   16   14   12   10   8   6   4   2

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
4.0 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Windows Phone Silverlight
8.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: