Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
任何人都知道为什么 BCL 团队选择在 UnmanagedMemoryStream 的构造函数中使用 Byte* 而不是 IntPtr?这会迫使您使用不安全的上下文来构造类型。似乎他们可以使用 IntPtr 并且不会强制使用不安全的上下文。
我猜是因为它更安全。如果他们使用 IntPtr,则可以使用任何垃圾值调用构造函数。使用 byte* ,编译器至少可以验证内存是否有效且已固定。尽管将 IntPtr 转换为 byte* 非常简单。