作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前,我正在尝试通过制作一个由 C# GUI 层和 F# 业务层组成的应用程序来自学一些 F#。在 GUI 层中,用户在某些时候必须通过选择一个简单枚举的一部分来做出选择,例如选择以下任一项:
enum {One, Two, Three}
我编写了一个函数来将枚举值转换为 F# 可区分联合
type MyValues =
| One
| Two
| Three
现在我必须翻译回来,并且已经厌倦了样板代码。有没有一种通用的方法可以将我的可区分联合转换为相应的枚举,反之亦然?
干杯,
最佳答案
您还可以在 F# 中定义枚举并完全避免进行转换:
type MyValues =
| One = 0
| Two = 1
| Three = 2
= <num>
bit 告诉 F# 编译器它应该将该类型编译为联合。当使用 C# 中的类型时,这将显示为完全正常的枚举。唯一的危险是来自 C# 的人可以使用 (MyValues)4
调用您的代码。 ,它会编译,但如果你使用 match
会导致不完整的模式匹配异常在 F# 中。
关于enums - 从有区别的联合映射到枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31057579/
我是一名优秀的程序员,十分优秀!