与方法同样,属性也可以接受参数。这种属性叫做索引器。使用接下来我们要介绍的Item属性,我们可以创建与访问普通数组同样方法进行访问的类。
要利用索引器,需要在成员名后使用with。这时,引用值时定义get访问器,设定值时定义set访问器。
Item索引器
type JokeArray = class |
在这个例子中,定义了将所有第奇数个的元素忽略,只设置与返回第偶数个元素(第奇数个元素的时候设置与返回该元素的上一个元素)的数组JokeArray。
通过定义get访问器,可以通过obj.索引器名的形式引用值。同时,只有变量名为Item的情况下,可以通过与数组访问形式相同的[]来进行访问。如果可以设置值的话,内部数据当然是mutable的数据。
作为补充信息介绍一下,根据Foundations of F#上的记载,使用Item之外的索引器时,在其他.Net的语言中要访问这个类会很困难。因此,如果要与其他语言相互访问时,最好经常使用Item索引器。