在受歧视的联合中命名元组的元素

定义区分联合时,你可以命名元组类型的元素,并在模式匹配期间使用这些名称。

type Shape = 
    | Circle of diameter:int
    | Rectangle of width:int * height:int

let shapeIsTenWide = function
    | Circle(diameter=10) 
    | Rectangle(width=10) -> true
    | _ -> false

另外,命名区分联合的元素可以提高代码的可读性和与 C#的互操作性 - 提供的名称将用于属性的名称和构造函数的参数。互操作代码中的默认生成名称是 ItemItem1Item2……