【问题标题】:System.IO.UnmanagedMemoryStream - why Byte* instead of IntPtrSystem.IO.UnmanagedMemoryStream - 为什么是 Byte* 而不是 IntPtr
【发布时间】:2010-01-11 16:51:21
【问题描述】:

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

【问题讨论】:

    标签: .net byte intptr


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-21
      • 2016-02-25
      • 2015-01-23
      • 2020-07-11
      • 2010-11-12
      • 2017-11-14
      • 1970-01-01
      相关资源
      最近更新 更多