728x90
action.Invoke는 action?.Invoke와 같이 action 콜백이 null인지 검사하고 null이 아닐 때에만 Invoke 되도록 사용하고자 할 때 많이 사용한다.
기존 예외처리
if(_action !=null)
_action.Invoke(3);// _action(3) 과 같은 코드
? 키워드를 사용 한 예외처리
_action?.Invoke(3); //if(_action !=null)를 ?키워드를 사용하여 null임을 체크할 수 있다.
action(); 는 action.Invoke()와 컴파일과정이 100프로 동일 하다.
action이 null이면 NullReferenceException을 뱉기 때문에 위험하다 그래서 invoke를 사용하기 전에 null 검사를 해야 하며 기존 예외처리 처럼 if문을 사용하여 예외 처리를 하게된다.
_action.Invoke(3); 와 _action(3)은 같은 코드이다.
단지 ? 키워드로 예외처리 코드를 줄일 수 있다.
728x90
'VisualStudio > C#' 카테고리의 다른 글
[C#] Byte와 문자열간 변환 방법과 인코딩 방식 설명 (0) | 2023.02.09 |
---|---|
[C#] Struct를 byte로 변환, byte를 Struct로 변환 (0) | 2023.02.02 |
[C#] nameof()와 default(T) (0) | 2023.01.05 |
[C#] ? ?? 연산자 (0) | 2023.01.03 |
[C#] 구조체 메모리 절감 (0) | 2023.01.03 |