避免if语句中出现NullReferenceException
本文关键字:NullReferenceException if 语句 避免 | 更新日期: 2023-09-27 18:28:25
我对一般编程相对陌生,我正在学习C#并在Unity3D中使用它进行游戏开发,我有一个问题,如果可能的话,当询问变量为null时,如何避免if语句中的NullReferenceException。
我有一个if语句,它检查光线投射命中的gameObject是否等于某个名称,如果你要将其按到skybox的空白中,该对象当然会返回null,这会导致NullReferenceException。
我只想知道,即使它根本不会影响任何事情,但它是否值得尝试避免,这只是让我有点不安,XD。
这是if语句,
if (Input.GetButtonDown ("Fire1") && rayhit.transform.name == "Reflector")
{
}
String myValue= null
if(myValue != null && myValue.equal("value"))
{
//Do something
}
您可以编写条件,以便它首先检查对象是否为空
示例
if(myvar != null && /* your condition */){
//do stuff
}
如果第一个条件未通过
/* your condition */
部分将不会执行我认为您应该尽可能避免出现异常。它更快,因为异常需要大量的处理时间,而且读取代码更容易,至少对我来说,当你有if语句而不是try-catch语句时。
例如,您可以在深入研究equal
方法之前执行if(skybox != null)
,以避免出现异常。
在这里,你可以阅读"为什么你应该避免例外"。它们使您的思维复杂化,使代码复杂化,并使调试成为一场噩梦。