1

私は一般的にプログラミングに比較的慣れていません.C#を学び、ゲーム開発のためにUnity3Dで使用しています.変数が等しいかどうかを尋ねるときにifステートメントでNullReferenceExceptionsを回避する方法について、可能であれば質問があります変数が null の場合の何か。

レイキャストがヒットしたゲームオブジェクトが特定の名前と等しいかどうかをチェックするこのifステートメントがあります。スカイボックスのボイドに押し込むと、そのオブジェクトはもちろんnullを返し、これによりNullReferenceExceptionが発生します。

知りたいのは、何にも影響を与えなくても、回避しようとする価値があるかどうかです.XD.

これは if ステートメントです。

if (Input.GetButtonDown ("Fire1") && rayhit.transform.name == "Reflector") 
        {

        }
4

3 に答える 3

0

可能な場合は例外を避けるべきだと思います。例外には多くの処理時間がかかり、少なくとも私にとっては、try-catch ステートメントの代わりに if ステートメントを使用すると、コードが読みやすくなるため、高速です。

たとえばif(skybox != null)、このメソッドに飛び込む前にequal、例外を回避することができます。

ここでは、「例外を避けるべき理由」について読むことができます。それらはあなたの思考を複雑にし、コードを複雑にし、デバッグを悪夢にします。

于 2013-08-21T13:44:04.453 に答える
0

オブジェクトが最初にnullかどうかをチェックするように条件を書くことができます

if(myvar != null && /* your condition */){
    //do stuff
}

最初の条件が失敗した場合、/* your condition */パーツは実行されません

于 2013-08-21T13:43:02.920 に答える