1

任何人都知道为什么 BCL 团队选择在 UnmanagedMemoryStream 的构造函数中使用 Byte* 而不是 IntPtr?这会迫使您使用不安全的上下文来构造类型。似乎他们可以使用 IntPtr 并且不会强制使用不安全的上下文。

4

1 回答 1

2

我猜是因为它更安全。如果他们使用 IntPtr,则可以使用任何垃圾值调用构造函数。使用 byte* ,编译器至少可以验证内存是否有效且已固定。尽管将 IntPtr 转换为 byte* 非常简单。

于 2010-01-11T17:20:07.080 回答