我有一个离散联合 WordContainer,它是 WordDocument 的 Doc 或 WordTableCell 的 Cell。就该特定功能而言,每种类型在功能方面都具有相同的 API。我使用匹配表达式来确定该值是 Doc 还是 Cell,然后在每种情况下使用具有两个不同变量的相同代码。
我花了一些时间查找此内容并阅读文档以找出如何删除重复项。首先,我认为类型类会很棒,但这些显然对 F# 来说是一个陌生的概念。然后我想也许一个接口可能会很好,但似乎我需要那些使用实际方法的完整类,这极大地复杂了我现在拥有的类型层次结构。尝试将类型保留并解决该问题并没有成功,没想到会成功,但我仍然尝试了。