【发布时间】:2013-01-09 23:16:40
【问题描述】:
这个 C# 的 F# 等价物是什么:
const MyEnum None = (MyEnum)1;
这不起作用:
[<Literal>]
let None : MyEnum = enum 1 //ERROR: not a valid constant expression
虽然奇怪的是,在属性构造函数中是可以的:
[<MyAttribute(enum 1)>]
type T = class end
这种差异似乎很奇怪。
更新
这已在 v3.1 中得到修复并按预期工作。
【问题讨论】:
-
是的,这很奇怪,如果它在 F# *cough* 的某些未来版本中得到修复,我不会感到惊讶。