Chinaunix首页 | 论坛 | 博客
  • 博客访问: 36275
  • 博文数量: 12
  • 博客积分: 1503
  • 博客等级: 上尉
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-04 12:16
文章分类

全部博文(12)

文章存档

2012年(1)

2011年(3)

2010年(2)

2009年(6)

我的朋友

分类: Python/Ruby

2011-03-12 23:43:27

在项目中用as强制转换经常会出错, why?
 
在as3中类型两种用法;
1 A a = A(b);
2 A a = b as A;
后一种是最常用的,因为如果类型不兼容无法转换,就会返回null。估计是api里面已经帮开发人员try...catch好类型转型错误了(运行时错误),程序可以省一个调用try的开销,也不用去理会它抛出什么错误。但在引用它的时候记得if(a)一下,否则有时候会抛出空对象错误。 WHY? 不是1等同2么。 不是的。 在AS3类库中最高层类(Top Level classes)之间进行强制转换时, as 操作符是不起作用的。比如 bytes与xml等。
所以结论有二
1
try
{
     A a = A(b);
}
catch()...
 
2 A a =  as A;
if(a)
{
      ...
}
 
阅读(1418) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~