gpt4 book ai didi

enums - 从有区别的联合映射到枚举

转载 作者:行者123 更新时间:2023-12-01 09:54:31 24 4
gpt4 key购买 nike

目前,我正在尝试通过制作一个由 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com