C# ? 연산자 : Null 조건부 연산자

2023. 6. 2. 10:31·C#
반응형

null 조건부 연산자란?

null 조건부 연산자는 C# 6.0부터 지원되는 연산자로, null 값을 갖는 객체의 속성이나 메서드를 호출할 때 사용됩니다. null 조건부 연산자는 객체가 null인 경우 해당 속성이나 메서드를 호출하지 않으며, null이 아닌 경우 해당 속성이나 메서드를 호출합니다. null 조건부 연산자는 다음과 같은 형식으로 사용됩니다.

object?.propertyOrMethod;

위의 코드에서 object는 호출할 객체를, propertyOrMethod는 호출할 속성이나 메서드를 나타냅니다. ? 연산자는 object가 null이 아닌 경우 propertyOrMethod를 호출하며, object가 null인 경우 호출하지 않습니다.

null 조건부 연산자의 예

다음은 null 조건부 연산자의 간단한 예입니다.

string str = null;
int? length = str?.Length;

위의 예제에서 str 변수는 null로 초기화됩니다. null 조건부 연산자를 사용하여 str.Length를 호출하면 null이 반환됩니다. 이때, length 변수는 nullable int 형식으로 선언되어 있으므로 null 값을 저장할 수 있습니다.

null 조건부 연산자와 ?연산자의 차이점

null 조건부 연산자와 ?연산자는 비슷한 기능을 수행하지만, 사용하는 상황에 따라 차이가 있습니다.

?연산자는 조건 연산자로서, 조건이 참인 경우와 거짓인 경우에 대해 각각 다른 값을 반환합니다. ?연산자는 다음과 같은 형식으로 사용됩니다.

condition ? true_expression : false_expression;

위의 코드에서 condition은 조건을, true_expression은 조건이 참인 경우 반환되는 값, false_expression은 조건이 거짓인 경우 반환되는 값입니다.

null 조건부 연산자는 null 값을 갖는 객체의 속성이나 메서드를 호출할 때 사용됩니다. null 조건부 연산자는 객체가 null인 경우 해당 속성이나 메서드를 호출하지 않으며, null이 아닌 경우 해당 속성이나 메서드를 호출합니다. null 조건부 연산자는 다음과 같은 형식으로 사용됩니다.

object?.propertyOrMethod;

위의 코드에서 object는 호출할 객체를, propertyOrMethod는 호출할 속성이나 메서드를 나타냅니다. ? 연산자는 object가 null이 아닌 경우 propertyOrMethod를 호출하며, object가 null인 경우 호출하지 않습니다.

따라서, ?연산자는 조건 연산자로서 값을 반환하고, null 조건부 연산자는 null 값을 갖는 객체의 속성이나 메서드를 호출할 때 사용됩니다.

결론

C#에서 ?연산자와 null 조건부 연산자는 각각 조건 연산자와 null 값을 갖는 객체의 속성이나 메서드를 호출할 때 사용됩니다. 이러한 연산자를 사용하면 코드의 가독성과 유지 보수성이 향상됩니다. 이번 글을 통해 ?연산자와 null 조건부 연산자에 대해 더욱 자세히 알아보았습니다.

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

C# 메서드 매개변수 in, ref, out, param  (0) 2023.06.09
C# with 식  (0) 2023.06.08
C# 배열 인덱싱  (0) 2023.06.01
이진탐색 알고리즘  (0) 2023.05.18
C# DateTime  (0) 2023.05.16
'C#' 카테고리의 다른 글
  • C# 메서드 매개변수 in, ref, out, param
  • C# with 식
  • C# 배열 인덱싱
  • 이진탐색 알고리즘
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
  • 전체
    오늘
    어제
    • 분류 전체보기 (517) N
      • 상품 추천 (33)
      • MongoDB (4)
      • 하드웨어 (5) N
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (127)
        • Basic (40)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (48)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 다비즈
  • 공지사항

  • 인기 글

  • 태그

    믈레코비타멸균우유
    rtsp
    codingtips
    programmerlife
    상품 리뷰 크롤링
    스크립트 실행 순서
    스마트스토어리뷰
    ipcamera
    programming101
    unity
    codingcommunity
    devlife
    셀레니움
    appdevelopment
    파이썬
    리스트
    쇼핑몰리뷰
    긴유통기한우유
    카페24리뷰
    스크립트 실행
    cv2
    list
    Python
    카페24리뷰이관
    C#
    learntocode
    라떼우유
    유니티
    리뷰이관
    리뷰관리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
C# ? 연산자 : Null 조건부 연산자
상단으로

티스토리툴바