如何生成的F#类型提供

问题描述:

This changeset to the F# 3.0 sample pack似乎表明这是可能的枚举,但在ProvidedTypes.fs如何生成的F#类型提供

使用ProvidedTypeDefinition没有ProvidedEnum,只需使用一个真正的枚举类型的基本类型。这个功能没有经过特别的测试,所以如果遇到问题,可以询问后续问题。

+0

我不知道我理解你。假设我想用三个值A,B和C来生成一个新枚举。如果枚举不存在,我将哪些枚举传递给基类型?我应该在类型提供程序中创建具有多个属性的虚拟枚举,如Func 和Action ? – 2013-03-02 21:08:27

+0

@ovatsus - 你需要有一个真正的枚举,你可以重新调整用途(可能是一个虚拟枚举,你可以为所有提供的枚举重用;不幸的是,所有F#枚举必须至少有一个值,与C#相比)。说实话,我不希望提供枚举工作,所以这个限制不会让我感到惊讶。 – kvb 2013-03-03 02:19:34

+0

我试过你的方法(使用虚拟枚举作为基类型),它有点工作......但不是真的;报告的生成类型是通过反射的枚举(typeof .IsEnum = true),类型实际上并不像枚举。例如:let x = MySyntheticEnum.SomeLabel中的“x”被推断为int,而不是MySyntheticEnum类型的。该类型还有其他奇特的功能...... – 3Sphere 2013-12-31 06:36:39