gpt4 book ai didi

.net - .NET 中可以使用通用 BitConverter.GetBytes 吗?

转载 作者:行者123 更新时间:2023-12-02 01:22:23 25 4
gpt4 key购买 nike

是否可以创建一个像 BitConverter.GetBytes() 这样的方法,它也接受 Object 类型的参数作为输入,而不使用编码完成 here

或者,如果将类型对象作为输入给出,唯一的解决方案是在所有可用的 .NET 值类型上实现case

最佳答案

不,不是。类或结构的内部布局是不可发现的。需要在 [StructLayout] 的指导下进行编码(marshal),将未记录的布局转换为已知的布局。 JIT 编译器很容易利用这一点,它对结构中的字段重新排序,例如使它们正确对齐并需要最少的存储空间。这击败了任何与非托管指针混淆的技巧。简单值类型的行为是可预测的,但 BitConverter 已经很好地涵盖了它们。结构是你的克星。

这就是 .NET 框架花了这么长时间才支持内存映射文件的原因之一。但它们将在 .NET 4.0 中可用,您可以利用 MemoryMappedViewAccessor 类。它仍然使用编码,它隐藏在地垫下面。

关于.net - .NET 中可以使用通用 BitConverter.GetBytes 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com