如何在 F# 中为枚举指定基础类型
how to specify an underlying type for enum in F#
我们可以像这样在 C# 中为枚举指定底层类型:
[Flags]
public enum MyKinds : ushort
{
None = 0,
Flag1 = 1 << 0,
Flag2 = 1 << 1,
// ...
}
- 我如何使用 F# 做到这一点?
type MyKinds =
| None = 0
| Flag1 = 1
| Flag2 = 2
// inherit ushort // error FS0912
- 如何在 F# 中使用像
1 << 0
这样的按位运算符来定义枚举值?
type MyKinds =
| None = 0
| Flag1 = 1 << 0 // error FS0010
| Flag2 = 1 << 1 // error FS0010
我们可以像这样在 C# 中为枚举指定底层类型:
[Flags]
public enum MyKinds : ushort
{
None = 0,
Flag1 = 1 << 0,
Flag2 = 1 << 1,
// ...
}
- 我如何使用 F# 做到这一点?
type MyKinds =
| None = 0
| Flag1 = 1
| Flag2 = 2
// inherit ushort // error FS0912
- 如何在 F# 中使用像
1 << 0
这样的按位运算符来定义枚举值?
type MyKinds =
| None = 0
| Flag1 = 1 << 0 // error FS0010
| Flag2 = 1 << 1 // error FS0010