AS3 - MyClass(实例)和(实例为MyClass)之间有什么区别

时间:2010-07-06 14:14:09

标签: flash actionscript-3 casting

您可以使用以下语法对实例(超类或子类)进行向上或向下转换:

var i:MyClass = MyClass(instance);

as关键字的作用是什么?

var i:MyClass = (instance as MyClass);

他们是等同的吗?或者我在这里错过了一些东西......

3 个答案:

答案 0 :(得分:4)

用几句话说:

  • as是一名运营商。 The reference states:“如果第一个操作数是数据类型的成员,则结果是第一个操作数。否则,结果是值null”
  • 后者尝试转换。对于原语,这基本上有效,对于复数值,除非该值是所需类型的成员,否则抛出异常。

假设你有一个A类和一个B类。

var s:String = "4a";
trace(s as int);//null
trace(int(s));//4
var b:B = new B();
trace(b as A);//null
trace(A(b));//throws an error

格尔茨
back2dos

答案 1 :(得分:2)

This article很好地解释了。

答案 2 :(得分:0)

您也可以阅读Casting Performance中涉及的性能问题。