2013-03-02 69 views

回答

3

使用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