我们在f#中创建类的方式存在这种二分法,这真的困扰我.我可以使用隐式格式或显式格式创建类.但是我想要的一些功能只能用于隐式格式,有些只能用于显式格式.
例如:
我不能在明确定义的类中使用let inline*(或let单独).
在隐式定义的类中定义不可变公共字段(不是属性*)的唯一方法(我知道)是val bla : bla语法.
但这里有一个冗余.因为我最终会得到两个相同的不可变数据副本,一个私有,一个公共(因为在隐式模式下,构造函数参数在整个类存在期间持续存在)
(不太相关)使用属性进行方法重载和字段默认值的需求相当不合适.
无论如何我可以解决这个问题吗?
*出于性能原因
编辑:结果我错了两点(感谢Ganesh Sittampalam和MichaelGG).