본문 바로가기

프로그래밍&IT/C#

C# nullable타입 변수, 데이터 타입? 형식 & ?? 연산자

C# Nullable 타입변수 관련, [데이터타입?] 그리고 ?? 연산자


데이터타입? 선언 Ex) int? nInt , bool? nBool 등

int, bool 등의 값 타입 ?를 사용하여 null을 할당할 수 있게 해주며

데이터타입 선언시 ? 사용은

제네릭 System.Nulable<T> 구조체 타입의 인스턴스를 생성하는 구문의 단축표기법입니다.

     하단의 내용처럼 직접 Nullable<데이터타입>을 사용할 수 있습니다.


        static void Main(string[] args)

        {

            //int n1 = null;    일반값 타입에 null을 할당할수없다

            int? n2 = null;

            //bool b1 = null;   일반값 타입에 null을 할당할수없다

            bool? b2 = null;


            //string? str = "Hello";


            Console.WriteLine("n2:" + n2);

            Console.WriteLine("b2:" + b2);


            Nullable<int> nilInt = 100;    //Nullable<T>사용

            Console.WriteLine("nilInt: " + nilInt);

            nilInt = null;

            Console.WriteLine("nilInt: " + nilInt);


            bool? b3 = getFuncReturn() ?? false;

            Console.WriteLine("b3: " + b3);

        }


        private static bool? getFuncReturn()

        {

            return null;

        }

?? 연산자

반환된 값이 null일 경우, null대신 지정된 값을 반환받을 수 있게 한다

상단의 bool? b3 = getFuncReturn() ?? false; 구문