代码之家  ›  专栏  ›  技术社区  ›  Alexander Rautenberg

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

f#
  •  4
  • Alexander Rautenberg  · 技术社区  · 14 年前

    根据文档,一个枚举类型的约束 : enum<underlying-type>

    1 回复  |  直到 14 年前
        1
  •  3
  •   kvb    14 年前

    首先想到的是包装 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,_>