로딩
요청 처리 중입니다...

Unity에서 ? 연산자 사용하기 (C#)

 Unity에서 ? 연산자 사용하기 (C#)

.Net 4.x대로 작업을 하게 될 경우 Unity에서 C#의 신규기능들이 사용 가능합니다. 그 중에 하나가 ?

연산자입니다. 프로그래밍을 하다보면 코드의 1/3은 농담 보태지 않고 null check라는 것을 생각한다면...

뭔가 획기적으로 좀 줄일 방법이 없나 한번즈음 고민을 해보게 되죠. 그래서 C++에서는 define으로 만들어서 처리를 하기도 합니다. classTemp?.

DoAction(); if(classTemp != null) classTemp.DoAction(); 위의 2개의 코드는 완전히 동일합니다.

처음 Unity에서 이 기능을 쓸때만 해도 무척 좋다고 여기저기 썼습니다만... 사용하다보면 null이라고 뜨는데도 정작 null reference 에러가 나는 경우가 생깁니다.

어떤 경우에 이런 문제가 생기나면, 바로 ? 연산자가 체크를 하는 오브젝트가 GameObject일 경우에 문제가 발생합니다.

내부를 뜯어볼 여유가 없어서 아직까지 명확히는 모르겠습니다. 시간 여...