在模式匹配时,是否有任何创造性的方法可以解决.NET的"弱"枚举问题?我希望它们的功能与DU类似.这是我目前处理它的方式.有更好的想法吗?
[<RequireQualifiedAccess>]
module Enum =
let unexpected<'a, 'b, 'c when 'a : enum<'b>> (value:'a) : 'c = //'
failwithf "Unexpected enum member: %A: %A" typeof<'a> value //'
match value with
| ConsoleSpecialKey.ControlC -> ()
| ConsoleSpecialKey.ControlBreak -> ()
| _ -> Enum.unexpected value //without this, gives "incomplete pattern matches" warning
Run Code Online (Sandbox Code Playgroud)