标签: .net byte intptr
任何人都知道为什么BCL团队选择在UnmanagedMemoryStream的构造函数中使用Byte *而不是IntPtr?这会强制您使用不安全的上下文来构造类型。看起来他们本可以使用IntPtr而不会强迫不安全的上下文。
答案 0 :(得分:2)
我猜是因为它更安全。如果他们使用IntPtr,则可以使用任何垃圾值调用构造函数。使用byte *时,编译器至少会有一个镜头来验证内存是否有效并固定。虽然将IntPtr转换为byte *非常简单。