Fra*_*ori 9 f#
在编写不需要访问同一类的其他成员的私有方法时,如何在私有成员和let绑定之间进行选择?
Dan*_*iel 13
规范的相关部分是第8.6.2节.它指出:
用于在类中"let"绑定中声明的值的编译表示是: 对象构造函数的本地值(如果该值不是语法函数,则不可变,并且不在任何函数或成员中使用). 相应CLI类型中的实例字段(如果该值不是语法函数,但在某个函数或成员中使用). 相应CLI类型的成员(如果值是语法函数).
用于在类中"let"绑定中声明的值的编译表示是:
对象构造函数的本地值(如果该值不是语法函数,则不可变,并且不在任何函数或成员中使用).
相应CLI类型中的实例字段(如果该值不是语法函数,但在某个函数或成员中使用).
相应CLI类型的成员(如果值是语法函数).
也:
未在类型成员或函数绑定中使用的非函数let绑定将被优化掉,并成为生成的CLI构造函数的本地值.同样,函数绑定表示为实例成员.
我更喜欢let绑定私人成员,因为他们更"功能",即他们强调"什么"而不是"如何".编译器负责最佳编译形式.
let
Bri*_*ian 6
let类中的绑定是私有的.我认为let与私有之间的主要区别member是let绑定不能被重载,name()而是被调用而不是this.Name().因此,我认为这是一种主要的风格选择.
member
name()
this.Name()
归档时间:
14 年 前
查看次数:
2126 次
最近记录:
11 年,2 月 前