что такое intptr? - PullRequest
       21

что такое intptr?

8 голосов
/ 05 февраля 2011

Я не понял, что такое IntPtr, кто-нибудь может объяснить это?спасибо

Ответы [ 6 ]

9 голосов
/ 05 февраля 2011

Это целое число того же размера, что и указатель. 32-битные в 32-битных изображениях, 64-битные в 64-битных изображениях.

8 голосов
/ 05 февраля 2011

Это управляемый аналог void*.

Вы можете привести к и из void* для использования в управляемом коде, не прибегая к небезопасному коду в управляемых слоях, например C #.

2 голосов
/ 05 февраля 2011

Это тип платформы .NET, который используется для представления указателя или дескриптора.

Тип IntPtr разработан как целое число, размер которого зависит от платформы. То есть ожидается, что экземпляр этого типа будет 32-разрядным в 32-разрядных аппаратных и операционных системах и 64-разрядным в 64-разрядных аппаратных и операционных системах.

Тип IntPtr может использоваться языками, которые поддерживают указатели, и в качестве общего средства обращения к данным между языками, которые поддерживают и не поддерживают указатели.

Объекты IntPtr также можно использовать для хранения дескрипторов. Например, экземпляры IntPtr широко используются в классе System.IO.FileStream для хранения файловых дескрипторов.

(из MSDSN )

1 голос
/ 05 февраля 2011

Речь идет о типах c и c ++ intptr_t, но принцип тот же. Что такое тип данных uintptr_t

0 голосов
/ 05 февраля 2011

Черный ящик с указателем.Иногда у вас есть языки, которые не поддерживают небезопасный код / ​​указатели, и, следовательно, необходимо использовать IntPtr в API.

Я думаю, что его использование было сокращено с .net 2, так как многие из его вариантов использования лучшеподходит для безопасных ручек.

0 голосов
/ 05 февраля 2011
...