假设我有一个函数:
let foo (a : 'T[])
我想知道T的大小
一种方法是:
let t = a.[0].GetType()
let size = Marshal.SizeOf(t)
if size < 4 then //something
else //something else
但这有一些问题。 GetType 很慢,我必须首先检查数组是否为空。添加另一个步骤和更多代码。是否可以对此进行改进?
最佳答案
您可以使用 typeof:
let t = typeof<'T>
let size = Marshal.SizeOf(t)
if size < 4 then //something
else //something else
关于F# 在运行时获取类型参数的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38878340/