ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C# 문법 Null Safety
    .NET/Common 2022. 9. 17. 21:52

    C# NULL Safety

    C# 8.0에서는 다음과 같은 Nullsafety 연산자를 지원한다.

    NULL 대체할당

    var nullstring = null;
    nullstring ??= "null일경우 대체할 스트링"
    

    이 문법을 사용하면 다음과 같이 Null check하고 할당하는 코드를 단 한줄로 줄일 수 있다.

    if(nullstring == null)
    {
        nullstring = "null일경우 대체할 스트링";
    }
    

    null safety 연산자를 해석하면 다음과 같다.

    • A??=B ; A(좌측변수)가 널이라면 B(우측변수)를 A에 할당한다

    NULL 대체

    NULL값이 들어있는 변수를 대체하는 연산자는 ?? 이다.

    var nullstring = null;
    Console.WriteLine(nullstring?? "출력값은 A입니다." );
    

    ??연산자의 좌측값이 NULL일 경우 ??연산자의 우측값으로 대체한다.

    Exception

    대체하지 않고 Exception을 떨어뜨리는 경우 다음과 같이 사용한다.

    nullstring?? throw new Exception("nullstring은 null 입니다.");
    

    인스턴스가 null 인경우 멤버 대신 null을 할당

        class Human
        {
            public string name = "";
        }
    
        private static void Main(string[] args)
        {
            Human human = null;
    
            string test = human.name;
        }
    

    위 코드는 test 할당에서 human이 null 이기 때문에 null Reference Exception을 발생시킨다.

    만약 test값이 null이 되어도 상관이 없는 값이라면 human.name 대신 null을 할당하면 된다. 그런경우 다음과 같이 사용한다.

    string test = human?.name;
    

    ?. 연산자의 좌측이 null 이라면 존재하지 않는 human.name 을 찾는 것이 아니라 null을 대신 반환한다.


    이렇게 NULL Check Code를 심플하게 만들어줄수 있다. C# 8.0은 VS2017부터 사용 가능하다.

    '.NET > Common' 카테고리의 다른 글

    C# .NET 솔루션, 프로젝트 구조  (0) 2025.02.23
    Regex 정규식 활용 그룹명  (0) 2022.09.07
    C# RS232 통신  (0) 2022.09.04
Designed by Tistory.