您可能想使用数组或其他集合来存储颜色:
let colors =
[| Color.Red
Color.Green
Color.Blue |]
let p = new Pen(colors.[index])
g.DrawRectangle(p, 0, 0, 10, 10)
枚举是为完全不同的目的而设计的。如果您想枚举多个选项并通过名称访问它们(而不是通过索引访问它们),它们很有用。例如,您可以使用枚举来表示某些状态机的状态或其他选项。
在您的示例中,如果您想将不同的颜色与不同类型的图形元素相关联,它们会很有用。假设您想使用一种颜色作为背景,另一种颜色作为前景 - 您可以定义枚举或 F# 区分联合来表示这两种情况:
type ColorType =
| Foreground
| Background
...然后您可以定义一个将实际颜色分配给各个类型的集合:
let colors =
dict [ (ColorType.Foreground, Color.Red);
(ColorType.Background, Color.Black) ]
然后您可以使用colors.[ColorType.Foreground]
来获取指定种类的颜色(在本例中为红色)。但是,您不能按索引访问枚举(或 F# 区分联合)的情况。
这是 F# 的基本方面,因此您可能想查看F# WikiBook,阅读MSDN 上的一些介绍或购买其中的一本 F# 书籍。