8

IntPtrとは何かわかりませんでしたが、誰かがこれを説明できますか?ありがとう

4

6 に答える 6

9

ポインタと同じサイズの整数です。32ビット画像では32ビット幅、64ビット画像では64ビット幅。

于 2011-02-05T09:47:59.553 に答える
8

の管理対象ですvoid*

void*C#などのマネージレイヤーで安全でないコードに頼ることなく、マネージコードで使用するためにキャストしたり、そこからキャストしたりできます。

于 2011-02-05T09:49:35.357 に答える
2

これは、ポインターまたはハンドルを表すために使用される.NETプラットフォーム固有のタイプです。

IntPtrタイプは、サイズがプラットフォーム固有の整数になるように設計されています。つまり、このタイプのインスタンスは、32ビットハードウェアとオペレーティングシステムでは32ビット、64ビットハードウェアとオペレーティングシステムでは64ビットであると予想されます。

IntPtrタイプは、ポインターをサポートする言語で使用でき、ポインターをサポートする言語とサポートしない言語間でデータを参照する一般的な手段として使用できます。

IntPtrオブジェクトは、ハンドルを保持するためにも使用できます。たとえば、IntPtrのインスタンスは、ファイルハンドルを保持するためにSystem.IO.FileStreamクラスで広く使用されています。

MSDSNから)

于 2011-02-05T09:49:51.777 に答える
1

これはcおよびc++タイプのintptr_tに関するものですが、原則は同じです。 uintptr_tデータ型とは

于 2011-02-05T10:05:55.370 に答える
0

http://msdn.microsoft.com/en-us/library/system.intptr(v=VS.100).aspx#Y69

于 2011-02-05T09:48:48.017 に答える
0

ポインタサイズのブラックボックス。安全でないコード/ポインターをサポートしていない言語があるため、APIでIntPtrを使用する必要がある場合があります。

.net 2以降、そのユースケースの多くが安全なハンドルにより適しているため、その使用は減少していると思います。

于 2011-02-05T09:48:59.107 に答える