본문 바로가기

hayee Study/코딩_c#

[C#] ? 연산자 (조건부 연산자)

반응형

다른 프로젝트의 소스 코드 분석 중 물음표가 너무 많아서 이게 뭔가 싶었다.

 

아래와 같은 방식으로 null 처리를 해서 그런지 ?. (조건부 연산자)를 처음보았을 때 눈에 익지 않아서 관련 내용을 정리해 보려 한다. 

if (변수 != null)
{
// ~~ 소스코드
}

 

?. 연산자는 조건부 연산자라고도 하는데, null 값 예외처리 시에 유용하게 쓰이는 것 같다.

위의 코드와 기능은 똑같지만 익숙해 진다면 소스가 간결해져서 좋을 것 같고, 가독성 측면에서도 괜찮을 것 같다.


◈ 예제 소스 (1)

private void Test_NULL_Style()
{
    Collection<string> collect = new Collection<string>();

    if (collect != null)
        collect.Add("(1) Test code 입니다.");

    foreach (string sText in collect)
        Trace.WriteLine(sText);
}

// 출력
// (1)Test code 입니다.

- 위의 예제는 컬렉션 자료구조를 생성하고 if 문을 사용하여 컬렉션이 null 이 아닐 경우 자료구조에 문자열을 추가하는 예제이다. 

 

◈ 예제 소스 (2)

private void Test_NULL_Style()
{
    Collection<string> collect = null;

    collect?.Add("(2)Test code 입니다.");

    foreach(string sText in collect)
        Trace.WriteLine(sText);
}

// 출력
// 에러 발생

- 위 예제를 실행 할 경우 컬렉션을 생성하지 않아 문자열을 Add 할 수 없으며, collection 이 null 이기 때문에 에러가 발생한다.

 

예제 소스(2) 테스트 결과

 

 

 

 

# 틀린 부분이 있다면 댓글 부탁드립니다. #

# 댓글 달아주시면 늦게라도 블로그 방문하도록 할게요! 감사합니다. #

 

 

 

728x90
반응형