특정 값 형식에 정의된 값이 항상 있는 것은 아닙니다(또는 필요). 이는 일부 필드에 값이 할당되지 않을 수 있는 데이터베이스의 일반적인 사례입니다. 예를 들어 데이터베이스 필드에 null 값을 할당하여 아직 값이 할당되지 않았다는 것을 나타낼 수 있습니다.
nullable 형식은 해당 형식의 일반적인 값 범위와 null 값을 사용할 수 있도록 확장하는 값 형식입니다. 예를 들어, Int32의 nullable, 즉 Nullable<Int32>는 -2147483648에서 2147483647까지의 값을 가질 수 있으며, null 값을 할당할 수도 있습니다. Nullable<bool> 은 값 True또는 Falsenull(값 없음)을 할당할 수 있습니다.
Nullable 형식은 Nullable<T> 구조체의 인스턴스입니다. nullable 형식의 각 인스턴스에는 다음 두 개의 공용 읽기 전용 속성이 HasValue 있습니다 Value.
HasValue는 형식bool이며 변수에 정의된 값이 포함되어 있는지 여부를 나타냅니다.True는 변수에 null이 아닌 값이 포함되어 있음을 의미합니다.if (x.HasValue)문 또는if (y != null)문을 사용하여 정의된 값을 테스트할 수 있습니다.Value은 기본 형식과 동일한 형식입니다.HasValue이True인 경우,Value에 의미 있는 값이 포함됩니다.HasValue가False인 경우,Value에 접근하면 유효하지 않은 작업 예외가 발생합니다.
기본적으로 변수를 nullable 형식으로 선언하면 기본 값 형식의 기본값 이외의 정의된 값(HasValue is False)이 없습니다.
클래스 디자이너는 기본 형식을 표시하는 것처럼 nullable 형식을 표시합니다.
C#의 nullable 형식에 대한 자세한 내용은 Nullable 형식을 참조하세요. Visual Basic의 nullable 형식에 대한 자세한 내용은 Nullable 값 형식을 참조하세요.
비고
이 문서의 지침은 Visual Studio에서 사용할 수 있는 IDE(대화형 개발 환경)의 최신 버전을 보여 줍니다. 컴퓨터에 일부 사용자 인터페이스 요소에 대한 다른 이름 또는 위치가 표시될 수 있습니다. 다른 버전의 Visual Studio 또는 다른 환경 설정을 사용할 수 있습니다. 자세한 내용은 IDE 개인 설정참조하세요.
클래스 디자이너를 사용하여 nullable 형식을 추가하려면
클래스 다이어그램에서 기존 클래스를 확장하거나 새 클래스를 만듭니다.
프로젝트에 클래스를 추가하려면 클래스 다이어그램 메뉴에서클래스 추가>를 클릭합니다.
클래스 셰이프를 확장하려면 클래스 다이어그램 메뉴에서 [확장]을 클릭합니다.
클래스 셰이프를 선택합니다. 클래스 다이어그램 메뉴에서필드추가>를 클릭합니다. 기본 이름 필드가 있는 새 필드는 클래스 셰이프와 클래스 세부 정보 창에도 표시됩니다.
클래스 세부 정보 창의 이름 열(또는 클래스 셰이프 자체)에서 새 필드의 이름을 유효하고 의미 있는 이름으로 변경합니다.
클래스 세부 정보 창의 형식 열에서 다음을 지정하여 형식을 nullable 형식으로 선언합니다.
-
int?(Visual C#) -
Nullable(Of Integer)(Visual Basic)
-
코드 편집기를 사용하여 nullable 형식을 추가하려면
프로젝트에 클래스를 추가합니다. 솔루션 탐색기에서 프로젝트 노드를 선택하고 프로젝트 메뉴에서 클래스 추가를 클릭합니다.
새 클래스에 대한 .cs 또는 .vb 파일에서 새 클래스의 nullable 형식을 하나 이상 클래스 선언에 추가합니다.
클래스 뷰에서 새 클래스 아이콘을 클래스 디자이너 디자인 화면으로 끕니다. 클래스 셰이프가 클래스 다이어그램에 나타납니다.
클래스 셰이프에 대한 세부 정보를 확장하고 마우스 포인터를 클래스 멤버 위로 이동합니다. 툴팁에는 각 멤버의 선언이 표시됩니다.
클래스 셰이프를 마우스 오른쪽 단추로 클릭하고 클래스 세부 정보를 클릭합니다. 클래스 세부 정보 창에서 새 형식의 속성을 보거나 수정할 수 있습니다.