发表于2014-09-09 11:29:37
在jntemplate中,我们可以轻易的获取到某个对象的属性或者方法,但是目前却没有介绍怎么去获取索引的值,或者数组的值,于是有不少用户不知道怎么办。
在这里我给大家介绍一下如何在jntemplate中获取索引值与数组的值。其实数组取值也是算索引的,不过实际操作起来有一点点不一样,所以我在标题中把它们分开了。
首先我先把答案公布一下。一般索引取值用get_Item(),比如$obj.get_Item(0) 或者 $user.get_Item("name").
数组用get,例如:$arr.get(0);
答案出来了,接下来我讲解一下原理。其实不管是get_item好,还是get好,这并不是引擎自身的支持,而是跟.NET的自身的一个原理有关。
虽然在c#中,我们通过中括号来获取索引,但是事实上,索引与属性是同一种实现。而且他们最终都是以方法的形式实现的。
正确点来说,我们常用的属性应该叫无参属性,索引叫有参数性。
而对象的属性经编译后,会生成二个方法,即get_属性名()与set_属性名(),前面用来取值,后者用来赋值(所以在jntemplate中,我们还可以通过$obj.get_属性名()来获取属性)。
而索引因为不存在属性名,所以csc(c#)编译器会使用Item来替代,所以,在jntemplate中,我们可以使用get_Item获取索引的值。只不过它带了参数,比如 get_Item(int index)。而数组的原理类似。
其实jntemplate的使用是十分灵活的,特别是方法标签的搭配,可以轻松实现很多功能。