[C# 문법] C# as 연산자와 null 가능값 타입

소개

기존에는 as 연산자를 이용하여 형변환을 할 때 is 연산자와 함께 형변환 여부를 체크하여 사용하였습니다.
그러나, 보다 코드를 간결하게 작성할 수 있는 방법이 있어서 소개해 드리고자 합니다.
바로, as 연산자와 함께 null 연산자를 함께 이용하는 방법입니다.
예제 코드를 통해서 어떻게 사용하는지 보여 드리도록 하겠습니다.

as 연산자와 null 가능값 타입 사용 예제

using System;

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            // is , as 연산자 이용한 타입
            CheckIsAsMethod("범범조조");
            CheckIsAsMethod(12);

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            // as 연산자 null 가능 값 타입
            CheckAsNullMethod("범범조조");
            CheckAsNullMethod(12);
        }

        public static void CheckIsAsMethod(object obj)
        {
            string str = obj as string;

            if(str is string)
            {
                Console.WriteLine($"obj : {obj.ToString()}");
            }
            else
            {
                Console.WriteLine($"형변환 실패");
            }
        }

        public static void CheckAsNullMethod(object obj)
        {
            int? str = obj as int?;

            Console.WriteLine(str.HasValue ? str.Value.ToString() : "null");
        }
    }
}

실행 결과

null 가능 타입에 대해 as 연산자를 사용하는 경우 느리게 동작한다는 단점이 있습니다. 대부분의 경우에 큰 문제가 되지는 않지만, 어떤 경우에 is 연산이나 타입 변환보다도 느리게 동작할 때가 있어서 적절한 상황에 사용하는 것을 권장합니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY