Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3:尝试检查是否存在空对象引用时?_Actionscript 3_Reference_Null - Fatal编程技术网

Actionscript 3 AS3:尝试检查是否存在空对象引用时?

Actionscript 3 AS3:尝试检查是否存在空对象引用时?,actionscript-3,reference,null,Actionscript 3,Reference,Null,我有个奇怪的问题。一个对象被传递给我的函数,一些参数是可选的,所以我自然会检查它们是否存在,如果没有,什么也不做 然而,当我只是检查它时,我得到了一个空引用错误(#1009)。以下是示例: public function parseObject(params:Object) { if (params.optionalParam) trace("Got Optional Parameter!"); } 该错误与if语句一起返回。如果(params.optionalParam=

我有个奇怪的问题。一个对象被传递给我的函数,一些参数是可选的,所以我自然会检查它们是否存在,如果没有,什么也不做

然而,当我只是检查它时,我得到了一个空引用错误(#1009)。以下是示例:

public function parseObject(params:Object) {
   if (params.optionalParam)
       trace("Got Optional Parameter!");
}
该错误与
if
语句一起返回。如果(params.optionalParam==null),将其更改为检查null(
)也不起作用。如果一个物体不存在,玩家似乎就放弃了

发生这种情况有什么合乎逻辑的原因吗?还是刚刚出现的奇怪的虫子

提前感谢,,
-Esa

如果您的params对象为空,则在尝试访问其“optionalParam”属性时,将出现空引用错误

尝试以下方法:

if (params == null)
{ trace("params is null!"); }
else if (params.optionalParam != null)
{ trace("Got optional parameter!"); }

如果params对象为null,则在尝试访问其“optionalParam”属性时将出现null引用错误

尝试以下方法:

if (params == null)
{ trace("params is null!"); }
else if (params.optionalParam != null)
{ trace("Got optional parameter!"); }

@伊萨维安,救火就在这里。仅仅因为您传递了对parseObject()的另一个引用,并且parseObject方法接受了该参数,并不意味着它不是null。传递的引用可以为null,而不会在方法参数中引发错误,但一旦显式尝试读取该对象或其属性,就会得到null异常。您需要确保它不为null,因此将代码更改为(如果params!=null&¶ms.optionalParam!=null).Derp。谢谢你。实际上,我只是没有意识到,在某些情况下,params将为null。看来我刚找到一些,哈哈。谢谢(编辑:拼写)等等,如果我只检查params:if(params!=null){if(params.optionalParam!=null)trace(“Got optional param!”)}我仍然在第一个if语句上得到错误…这不应该是。(我确实检查过,params为null)如果使用数组表示法检查属性,会得到相同的结果吗?if(params!=null){if(params[“optionalParam”]!=null){trace(“Got optional param!”)}}是的,它甚至没有到达内部if语句。玩家停在“if(params!=null)”@Esaevian,meddlingwithfire就在这里。仅仅因为您传递了对parseObject()的另一个引用,并且parseObject方法接受了该参数,并不意味着它不是null。传递的引用可以为null,而不会在方法参数中引发错误,但一旦显式尝试读取该对象或其属性,就会得到null异常。您需要确保它不为null,因此将代码更改为(如果params!=null&¶ms.optionalParam!=null).Derp。谢谢你。实际上,我只是没有意识到,在某些情况下,params将为null。看来我刚找到一些,哈哈。谢谢(编辑:拼写)等等,如果我只检查params:if(params!=null){if(params.optionalParam!=null)trace(“Got optional param!”)}我仍然在第一个if语句上得到错误…这不应该是。(我确实检查过,params为null)如果使用数组表示法检查属性,会得到相同的结果吗?if(params!=null){if(params[“optionalParam”]!=null){trace(“Got optional param!”)}}是的,它甚至没有到达内部if语句。玩家在“if(params!=null)”时停止