我对一般的编程比较陌生,我正在学习C#并在Unity3D中使用它进行游戏开发,我有一个问题,如果可能的话,在询问变量时如何在if语句中避免NullReferenceExceptions当变量为null时,它等于某事。
我有这个if语句,用于检查光线投射命中的gameObject是否等于某个名称,如果你要按下天空盒的空白,该对象当然会返回null,这会导致NullReferenceException
我只是想知道,即使它根本不会影响任何事情,它是否值得尽量避免,这对我来说只是有点令人不安,XD。
这是if语句,
if (Input.GetButtonDown ("Fire1") && rayhit.transform.name == "Reflector")
{
}
答案 0 :(得分:1)
String myValue= null
if(myValue != null && myValue.equal("value"))
{
//Do something
}
答案 1 :(得分:0)
您可以编写条件,以便检查对象是否为空
例如
if(myvar != null && /* your condition */){
//do stuff
}
如果第一个条件失败,则不会执行/* your condition */
部分
答案 2 :(得分:0)
我认为你应该尽可能避免例外。它更快,因为异常需要大量的处理时间,而且至少对于我来说,当你有if语句而不是try-catch语句时,读代码更容易。
对于您的示例,您可以在深入了解此if(skybox != null)
方法之前执行equal
以避免异常。
Here您可以阅读“为什么要避免例外”。它们使您的思维复杂化,使代码复杂化,并使调试成为一场噩梦。