IntPtr与UIntPtr

dev*_*ium 11 .net c# vb.net

这应该很简单:我看到人们都在使用IntPtr,有什么理由我应该使用UIntPtr吗?

wom*_*omp 9

似乎没有充分的理由.来自文档:

备注

...

IntPtr类型符合CLS,而UIntPtr类型则不符合.在公共语言运行库中仅使用IntPtr类型.提供UIntPtr类型主要是为了保持IntPtr类型的架构对称性.

  • 这个答案被标记为正确,但不正确。 (3认同)

Bri*_*eon 8

那么根据微软 UIntPtr是用于建筑的对称性大多提供.另一个有趣的观点是,UIntPtr它不符合CLS.

从表面上看,IntPtr似乎是首选.但是,如果你知道你将使用指针算法,那么UIntPtr可能是一个更好的选择,因为在关闭机会时,有一些模糊的问题处理负值.