자료형 또는 데이터타입은 컴퓨터 과학, 프로그래밍 언어에서 실수,정수,불린 자료형의 여러 종류의 데이터를 식별하는 분류입니다.
자료형에 대입이 가능한 값, 해당 자료형에서 수행을 할 수 있는 명령들, 데이터의 의미 및 해당 자료형의 값을 저장하는 방식을 결정 합니다.
이번 포스팅은 C# language를 기준으로 작성 하였습니다.
자료형이 필요한 이유
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 형식 사용
1234 int value1 = 1; // okint value2 = null; // errorint? value3 = 1; // okint? value4 = null; // ok cs
nullable 형식은 기본 형식의 모든 값과 추가 null 값을 나타낼 수 있습니다. nullable 형식은 다음과 같은 두가지 방법 중 하나로 선언이 됩니다.System.Nullable<T> variable
또는
T? variable
T
는 nullable 형식의 기본 형식입니다. T
는 struct
를 비롯한 모든 값 형식일 수 있으나, 참조 형식일 수는 없습니다.
int형 데이터타입에 null값을 넣으면 오류가 출력됩니다.
int? Nullable형식의 데이터 타입에 null값이 할당 되었습니다.
1 2 3 4 | int value1 = 1; // ok int value2 = null; // error int? value3 = 1; // ok int? value4 = null; // ok | cs |
System.Nullable<T> variable
또는
T? variable
T
는 nullable 형식의 기본 형식입니다. T
는 struct
를 비롯한 모든 값 형식일 수 있으나, 참조 형식일 수는 없습니다.
int형 데이터타입에 null값을 넣으면 오류가 출력됩니다.
int? Nullable형식의 데이터 타입에 null값이 할당 되었습니다.
'현대리가 생각하는 IT' 카테고리의 다른 글
JSON (JavaScript Object Notation) 기초 (0) | 2018.07.11 |
---|---|
HTTP에서의 압축 (0) | 2018.07.08 |
HTTP Request Header (0) | 2018.07.05 |
DNS서버(Domain Name Server) 와 호스트(hosts) 파일 (0) | 2018.06.28 |