我有一个关于flex中的类型转换的非常简单的问题。Flex数据类型转换
这两次转换有什么区别。
1)var arrCol:ArrayCollection = new ArrayCollection(event.result.dataset.table);
2)var arrCol:ArrayCollection = event.result.dataset.table as ArrayCollection;
我已经看到第二次转换比第一次更好(更多次)。
我有一个关于flex中的类型转换的非常简单的问题。Flex数据类型转换
这两次转换有什么区别。
1)var arrCol:ArrayCollection = new ArrayCollection(event.result.dataset.table);
2)var arrCol:ArrayCollection = event.result.dataset.table as ArrayCollection;
我已经看到第二次转换比第一次更好(更多次)。
我认为术语“转换”不正确。在你的代码片段中存在实例化和投射。
情况1)正在实例化(创建类的新实例)。要确定它,请看new
关键字。并且该参数是根据ArrayCollection
's constructor documentation的Array
实例。
案例2)正在铸造。在你的情况下,event.result.dataset.table
应该是ArrayCollection
。否则,arrCol
的值将是null
。铸造的另一种形式是:
var arrCol:ArrayCollection = ArrayCollection (event.result.dataset.table);
在这种情况下,如果event.result.dataset.table
不是ArrayCollection
会出现运行时异常。由于Array
和ArrayCollection
是不兼容的类型,不能将它们彼此投射。
event.result.dataset.table as ArrayCollection
更具可读性,编写速度更快。但是我记得flex在这种方式转换时发生错误的情况。