0Pricing
C# Academy · 강의

널 허용 값 형식 소개

int?, double?을 선언하고 Nullable 을 이해합니다.

널 허용 값 형식 소개은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

값 형식은 널이 될 수 없습니다

일반적으로 int는 항상 숫자를 저장하므로 null이 될 수 없습니다. 하지만 측정값이 누락된 경우처럼 값이 없음을 나타내야 할 때가 있습니다.

using System;

class Program {
    static void Main() {
        int count = 0;
        Console.WriteLine(count);
    }
}

물음표(?)를 사용한 널 허용 형식

값 형식 뒤에 ?를 추가하면 널 허용 형식이 됩니다. int?는 모든 int 값이나 또는 null을 저장할 수 있습니다.

using System;

class Program {
    static void Main() {
        int? maybe = null;
        Console.WriteLine(maybe.HasValue);
        maybe = 42;
        Console.WriteLine(maybe);
    }
}

다른 널 허용 형식

모든 값 형식을 널 허용 형식으로 만들 수 있습니다. double?, bool?, DateTime? 등이 있습니다.

using System;

class Program {
    static void Main() {
        double? temp = null;
        bool? flag = true;
        Console.WriteLine(temp.HasValue + " " + flag);
    }
}

Nullable<T>를 풀어 쓰기

int?는 구조체인 Nullable<int>를 줄여 쓴 것일 뿐입니다. 두 형식은 완전히 동일한 형식으로 컴파일됩니다.

using System;

class Program {
    static void Main() {
        Nullable<int> a = 10;
        int? b = 10;
        Console.WriteLine(a == b);
    }
}

널 할당

널 허용 변수에 null을 자유롭게 할당하고 나중에 실제 값을 다시 할당할 수 있습니다.

using System;

class Program {
    static void Main() {
        int? id = 100;
        Console.WriteLine(id);
        id = null;
        Console.WriteLine(id.HasValue);
    }
}

널인 널 허용 값 출력

null인 널 허용 값을 출력하면 null이라는 단어가 아니라 빈 문자열이 출력됩니다.

using System;

class Program {
    static void Main() {
        int? value = null;
        Console.WriteLine("[" + value + "]");
    }
}

널 허용 형식으로의 암시적 변환

모든 int는 유효한 널 허용 int이므로 일반 int는 int?로 자동 변환됩니다.

using System;

class Program {
    static void Main() {
        int x = 7;
        int? y = x;
        Console.WriteLine(y);
    }
}

메서드 반환값의 널 허용 형식

메서드는 값을 찾았는지 또는 아무것도 찾지 못했는지를 나타내기 위해 널 허용 형식을 반환할 수 있습니다.

using System;

class Program {
    static int? FindEven(int[] nums) {
        foreach (int n in nums)
            if (n % 2 == 0) return n;
        return null;
    }
    static void Main() {
        Console.WriteLine(FindEven(new[] {1, 3, 4}));
    }
}

널 허용 값 비교

동등성 비교는 예상대로 작동합니다. 두 널 허용 값은 둘 다 널이거나 둘 다 같은 값을 저장할 때 서로 같습니다.

using System;

class Program {
    static void Main() {
        int? a = null;
        int? b = null;
        Console.WriteLine(a == b);
        int? c = 5;
        Console.WriteLine(c == 5);
    }
}

널 허용 형식을 사용하는 이유

널 허용 값 형식을 사용하면 선택적 데이터를 깔끔하게 표현할 수 있습니다. 예를 들어 NULL을 허용하는 데이터베이스 열이나 사용자가 비워 둔 필드를 표현할 수 있습니다.

using System;

class Program {
    static void Main() {
        int? userAge = null;
        string msg = userAge.HasValue ? "Age set" : "Age unknown";
        Console.WriteLine(msg);
    }
}

널 허용 형식은 구조체입니다

Nullable<T> 자체가 값 형식이므로 널 허용 변수는 널이 될 수 있어도 참조 형식은 아닙니다.

using System;

class Program {
    static void Main() {
        int? n = 3;
        Console.WriteLine(n.GetType().Name);
    }
}

빠른 확인

널 허용 값 형식에 대한 이해도를 확인해 보십시오.

복습

int와 같은 값 형식은 기본적으로 널이 될 수 없습니다. ?를 추가하면 널 허용 형식(int?)이 만들어지며, 이는 Nullable<T>를 줄여 쓴 것입니다.

널 허용 형식을 사용하면 누락되었거나 선택적인 데이터를 나타낼 수 있고, 기본 형식에서 암시적으로 변환할 수 있으며, 널 허용 형식 자체도 구조체입니다.

자주 묻는 질문

“널 허용 값 형식 소개” 강의는 무료인가요?

네 — “널 허용 값 형식 소개” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“널 허용 값 형식 소개”에서 뭘 배우나요?

int?, double?을 선언하고 Nullable 을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“널 허용 값 형식 소개” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 널 허용 값 형식 소개
  2. HasValue 및 Value 속성
  3. 널 병합 연산자
  4. 계산에서의 Nullable
← C# Academy(으)로 돌아가기