Член Enum (флаги) состоит из других членов - PullRequest
15 голосов
/ 19 мая 2010
[<Flags>]
type LikeMatch =
    | None  = 0
    | Start = 1
    | End   = 2
    | All   = Start ||| End //ERROR: Unexpected identifier in union case

Я также пытался квалифицировать участников с типом enum. Есть ли способ сделать это в F #?

Ответы [ 2 ]

26 голосов
/ 19 мая 2010

Как говорит JaredPar, это не разрешено языком, но F # имеет двоичные литералы, которые позволяют легко показать, какие биты устанавливаются:

open System

[<Flags>]
type LikeMatch =
    | None  = 0b000000000
    | Start = 0b000000001
    | End   = 0b000000010
    | All   = 0b000000011
10 голосов
/ 19 мая 2010

Согласно справочнику по языку F #, сделать это невозможно. Правая часть знака = в перечислении F # должна быть целочисленным литералом

Грамматика

type enum-name =
   | value1 = integer-literal1
   | value2 = integer-literal2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...