F#枚举类型约束的用例?

时间:2010-09-10 13:58:05

标签: f#

根据文档,表单的枚举类型约束 : enum<underlying-type>“不适合常用”。这意味着什么是不寻常的用途?

1 个答案:

答案 0 :(得分:3)

首先想到的是用强类型包装器包装System.Enum的成员:

// gets all underlying values for which an enum is defined
let definedVals<'a, 'b when 'a : enum<'b>> = 
  System.Enum.GetValues(typeof<'a>) 
  |> Seq.cast<'a> 
  |> Seq.map (LanguagePrimitives.EnumToValue)

let ints = definedVals<System.ConsoleColor,_>