본문으로 바로가기
링크허브 공식블로그

연동이 쉬워진다

링크허브 공식블로그

현대리가 생각하는 IT

C# 데이터타입 및 Nullable 형식

자료형 또는 데이터타입은 컴퓨터 과학, 프로그래밍 언어에서 실수,정수,불린 자료형의 여러 종류의 데이터를 식별하는 분류입니다.

자료형에 대입이 가능한 값, 해당 자료형에서 수행을 할 수 있는 명령들, 데이터의 의미 및 해당 자료형의 값을 저장하는 방식을 결정 합니다.

이번 포스팅은 C# language를 기준으로 작성 하였습니다. 


자료형이 필요한 이유

자료형은 데이터를 저장할 때 효율적으로 정리할 수 있기 위해 존재합니다. 예를 들어 회원들의 메일 발송 여부의 설정값을 체크하는 프로그램을 만든다고 가정 해보면, 사용자가 메일을 수신하기 원한다면 "true" 값을 수신을 원치 않는다면 "false" 값을 갖게 됩니다. 따라서 메일수신에 대한 값에 들어갈 변수는 "0" 아니면 "1"만 필요합니다. 이렇게 대입되는 값이 크지 않다면 많은 데이터의 공간이 필요하지 않습니다. 따라서 프로그래머는 더 적절한 자료형을 선택하여 프로그램의 메모리 공간을 낭비 하지 않을 수 있습니다. 


C# 자료형의 크기와 범위

프로그래밍 언어 마다 각각 키워드는 다를지라도 연산자나 자료형은 비슷한 경우가 많습니다.
언어마다 저마다 다른 용어를 사용하지만, 거의 모든 프로그래밍 언어는 자료형의 개념을 가지고 있습니다. 

분류

자료형

크기

기본값

저장 값의 범위

유효숫자

바이트

비트

최소값

최대값

 정수

 byte

 1

 8

 0

 0

 255

 

 sbyte

 1

 8

 0

 -128

 127

 

 short

 2

 16

 0

 -32,768

 32,767

 

 ushort

 2

 16

 0

 0

 65,535

 

 int

 4

 32

 0

 -2,147,483,648

 2,147,483,647

 

 uint

 4

 32

 0

 0

 4,294,967,295

 

 long

 8

 64

 0L

 -922,337,203,685,477,508

 922,337,203,685,477,507

 

 ulong

 8

 64

 0

 0

 18,446,744,073,709,551,615

 

 실수

 float

 4

 32

 0.0F

 ±1.5e-45

 ±3.4e38

 7 자리

 double

 8

 64

 0.0D

 ±5.0e-324

 ±1.7e308

 15~16 자리

 decimal

 16

 128

 0.0M

 ±1.0 × 10e−28

 ±7.9 × 10e28

 28~29 자리

 논리

 bool

 

 

 false

 false

  true

 

 문자

 char

 2

 16

 '\0'

 U+0000

 U+FFFF

 

 문자열

 string

 

 

 문자열(string)은 문자(char)들의 모임

 객체

 object

 

 

 모든 데이터 형식으로 사용 가능

 구조체

 struct

 

 

 여러 데이터 형식의 집합

 열거

 enum

 

 

 정수 데이터 형식의 집합


C# int? bool? Nullable 형식 사용

C# 에서 기본자료형은 기본적으로 null값을 허용 하지 않습니다.

1
2
3
4
int value1 = 1;      // ok
int value2 = null;   // error
int? value3 = 1;     // ok
int? value4 = null// ok
cs



nullable 형식은 기본 형식의 모든 값과 추가 null 값을 나타낼 수 있습니다. nullable 형식은 다음과 같은 두가지 방법 중 하나로 선언이 됩니다.

System.Nullable<T> variable

또는

T? variable

T는 nullable 형식의 기본 형식입니다. T struct를 비롯한 모든 값 형식일 수 있으나, 참조 형식일 수는 없습니다.

 

int형 데이터타입에 null값을 넣으면 오류가 출력됩니다.


int? Nullable형식의 데이터 타입에 null값이 할당 되었습니다.





  • Today
  • Total