让我们在C#中考虑以下枚举
public enum ScrollMode : byte
{
None = 0,
Left = 1,
Right = 2,
Up = 3,
Down = 4
}
F#代码接收一个字节,并且必须返回枚举的实例 我试过了
let mode = 1uy
let x = (ScrollMode)mode
(当然在实际应用中我没有设置'模式', 它是作为网络数据的一部分收到的。)
上面的例子没有编译,有什么建议吗?
答案 0 :(得分:17)
对于底层类型为'int'的枚举,'enum'函数将执行转换,但对于非int枚举,您需要'LanguagePrimitives.EnumOfValue',la:
// define an enumerated type with an sbyte implementation
type EnumType =
| Zero = 0y
| Ten = 10y
// examples to convert to and from
let x = sbyte EnumType.Zero
let y : EnumType = LanguagePrimitives.EnumOfValue 10y
(此处列出了EnumOfValue
(现在http://msdn.microsoft.com/en-us/library/ee340276(VS.100).aspx)
而enum列在这里
(现在http://msdn.microsoft.com/en-us/library/ee353754(VS.100).aspx) )
答案 1 :(得分:2)
让x:ScrollMode =枚举模式