我有以下受歧视的工会:
type ActCard = Cellar of card list
| Chapel of (card option * card option* card option* card option)
| Smithy | Spy of (card -> bool * card -> bool)
card -> bool
在我添加to之前,它具有结构上的平等性Spy
。这个问题对于如何对记录进行自定义相等很有帮助。但是,我不确定在这种情况下如何最好地实施它。我宁愿不必列举每个案例ActCard
:
override x.Equals(yobj) =
match x, yobj with
| Spy _, Spy _ -> true
| Cellar cards, Cellar cards2 -> cards = cards2
(* ... etc *)
这里有什么更好的方法?