2013-08-21 3 views
2

저는 일반적으로 프로그래밍에 비교적 익숙합니다. C#을 배우고 Unity3D에서 게임 개발에 사용하고 있습니다. 가능하다면 if 문에서 NullReferenceExceptions를 피하는 방법에 대해 질문합니다. 변수가 null 일 때와 같습니다.if 문에서 NullReferenceException 방지?

레이크 캐스트가 발생하는 gameObject가 특정 이름과 같은지 확인하고, skybox가 무효화 될 때 해당 객체가 물론 null을 반환하는지 확인하는 if 문을 사용하면 NullReferenceException입니다.

단지 알고 싶습니다. 아무 것도 영향을주지는 않지만 피하려고 노력할 가치가 있습니까? 내게 조금 불안한 XD입니다.

은 if 문입니다

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

     } 
+0

object.Equals (a, b)는 인수에서 null을 올바르게 처리 할 수 ​​있습니다. – Sander

+0

답장을 보내 주셔서 감사합니다. 어떻게하는지 알고 싶지는 않지만, 새로운 것이 아닙니다. 귀찮게해야하는지 아닌지를 알고 싶었습니다. – user2690614

+0

글쎄,이게 이상하다. null 일 때이 varaible을 참조하면 NullReferenceException이 발생한다. NullReferenceException은 null과 같거나 같지 않은지 묻는 것을 의미한다. – user2690614

답변

1
String myValue= null 

if(myValue != null && myValue.equal("value")) 
{ 
//Do something 
} 
0
가 확인하도록 객체가 null의 첫번째

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

/* your condition */ 일부 경우에 당신이 당신의 상태를 작성할 수

첫 번째 조건이 실패 할 경우 실행되지 않습니다.

+0

귀하의 코드를 수정하시기 바랍니다 –

+0

하시기 바랍니다 이름에 대한 아이디어 No – amdorra

+0

난 ")" –

1

가능한 경우 예외를 피해야한다고 생각합니다. try-catch 문 대신 if 문을 사용하면 예외 처리에 많은 처리 시간이 걸리므로 코드를 읽는 것이 더 빠르기 때문에 더 빠릅니다.

예외를 피하기 위해이 equal 방법으로 들어가기 전에 예를 들어 if(skybox != null)을 할 수 있습니다.

Here "예외를 피해야하는 이유"에 관해 읽을 수 있습니다. 그들은 당신의 생각을 복잡하게 만들고, 코드를 복잡하게 만들고, 디버깅을 악몽으로 만듭니다.