【发布时间】:2014-10-30 07:02:37
【问题描述】:
我尝试为HWND_BROADCAST ((HWND)0xffff) 创建一个文字,它被编组为IntPtr。
let [<Literal>] HWND_BROADCAST = 0xFFFFn
Visual Studio 告诉我:错误 FS0267:这不是有效的常量表达式或自定义属性值。
很好。然后我检查了documentation on F# Literals on MSDN,我注意到unativeint(UIntPtr)在列表中。我可以用它代替IntPtr。但是:
let [<Literal>] HWND_BROADCAST = 0xFFFFun
同样的错误信息。
所以我有两个问题:
- 为什么不支持
nativeint文字?这背后有什么原因吗? - 为什么
unativeint文字不起作用,尽管 MSDN 说它应该起作用?
在 Visual Studio 2013 上使用 F# 3.1.2(F# Interactive 版本 12.0.30815.0)。
我注意到bigint 也在列表中,这也不起作用。所以我猜这只是 MSDN 错了。
【问题讨论】: