我们可以在f#中创建类的方式存在这种二分法,这确实让我感到困扰。我可以使用隐式格式或显式格式创建类。但是我想要的某些功能仅可用于隐式格式,而某些功能仅可用于显式格式。
例如:
let inline
*(或单独使用let
)。val bla : bla
语法。但是这里有一个冗余。由于我将得到两个相同的不可变数据的副本,因此一个私有(private),一个公共(public)(因为在隐式模式下,构造函数参数在整个类存在期间一直存在)
无论如何,我可以解决这个问题吗?
*出于性能原因
编辑:事实证明我对这两点都错了(谢谢Ganesh Sittampalam和MichaelGG)。
let inline
,但我可以很好地使用member inline
,我认为它可以做同样的事情。最佳答案
这可能无济于事,但是您可以使成员成为嵌入式成员。 “成员内联私有(private)”效果很好。
关于f# - 关于F#面向对象的编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1212569/