F# 如何确定系统的大小。类型值?
如何确定类型值的大小F# 如何确定系统的大小。类型值?,f#,F#,如何确定类型值的大小 let typ = if true then (123).GetType() else "asdf".GetType();; let sz = sizeof<typ> let sz = sizeof<typ>;; ----------------^^^ error FS0039 让typ=如果为true,则为(123).GetType()否则为“asdf”.GetType();; 设sz=sizeof 设sz=sizeof;; -----
let typ = if true then (123).GetType() else "asdf".GetType();;
let sz = sizeof<typ>
let sz = sizeof<typ>;;
----------------^^^
error FS0039
让typ=如果为true,则为(123).GetType()否则为“asdf”.GetType();;
设sz=sizeof
设sz=sizeof;;
----------------^^^
错误FS0039
一种解决方案是使用Marshal.SizeOf(obj),但可能存在另一种解决方案?这将获得类型变量的大小:
sizeof<System.Type>
sizeof
提示是
<…>
需要是一个类型,而不是一个变量。我认为Marshal.SizeOf
是您在这里寻找的。请注意,该方法有两个重载
()将Marshal.SizeOf(t)
作为参数,并返回由System.Type
值表示的类型的大小(我相信这就是您想要的)System.Type
()接受任何Marshal.SizeOf(structure)
,并根据运行时类型返回结构的大小对象
sizeofor您需要知道大小的目的是什么?我认为这不是OP所要求的-这只是返回系统的大小。Type
引用类型(不是它所代表的值类型)。