避免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") 
        {
        }

避免if语句中出现NullReferenceException

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),以避免出现异常。

在这里,你可以阅读"为什么你应该避免例外"。它们使您的思维复杂化,使代码复杂化,并使调试成为一场噩梦。