gpt4 book ai didi

f# - 如何确定 System.Type 值的大小?

转载 作者:行者123 更新时间:2023-12-05 01:04:46 25 4
gpt4 key购买 nike

如何确定 Type 值的大小?

let typ = if true then (123).GetType() else "asdf".GetType();;
let sz = sizeof<typ>

let sz = sizeof<typ>;;
----------------^^^
error FS0039

一种解决方案是使用 Marshal.SizeOf(obj),但可能存在另一种解决方案?

最佳答案

我想 Marshal.SizeOf是您在这里寻找的东西。请注意,该方法有两个重载。

  • Marshal.SizeOf(t) ( MSDN ) 需要 System.Type作为参数并返回由 System.Type 表示的类型的大小值(value)(我相信这就是您想要的。)
  • Marshal.SizeOf(structure) ( MSDN ) 接受任何 object并根据运行时类型返回结构的大小。
  • sizeof<'T> F# 中的构造仅在静态知道类型时才有效,但随后它会生成不错的单个 sizeof IL 指令(如您所见 from the source code )。

    关于f# - 如何确定 System.Type 值的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547082/

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