Programming

Null 조건 연산자 vs Null 비교? if != null vs Action.Invoke | Null Conditional Operator VS .Invoke()

DragonTory 2022. 6. 9. 10:48
반응형

Null 조건 연산자 vs Null 비교?  if != null vs Action.Invoke | Null Conditional Operator 

Action something = null;

if( something != null )

{

   something();
}

 

으로 사용 하는 것과  c# 6.0이상부터는

something?.Invoke();

으로 사용 가능 한데 

왠지 유니티에서 Invoke() 를 사용 하면 느리다는

그런 정보를 본적이 있어서 사용을 좀 꺼렸었는데 

Action에서 ()로 함수를 호출 하면 컴파일러가 Invoke()로 변환 하기 때문에 

사용상 동일한 코드라는 것이다.

 

이제 

if( somthing != null ) something.Invoke(); 

somthing?.Invoke();

로 사용 하자.

 

단, Unity의  GameObject 같은 유니티 Object는

? ( null ) 연산자를 사용 하면 에러가 발행 해서 사용 할 수 없다.

(Invoke()외에도 .transform 같은... )

 

 

반응형