앞선 글에서 언급했던 자료형에 대하여 알아보도록 하겠습니다.
우리는 변수 선언 시 자료형을 지정함으로써 변수의 타입을 정할 수 있습니다.
이러한 자료형에는 주로 사용하는 정수형의 int와 문자열형의 string을 비롯하여 char, object 등 여러 종류가 있습니다.
우선 int형을 예시로 자료형에 대한 내용을 이어가 보겠습니다.
자료형
먼저 변수가 선언 및 정의되는 9번 라인의 'int var1 = 1;'을 풀어서 말하면 다음과 같습니다.
'정수형 변수 var1을 선언하고 var1에 1을 저장한다.'입니다.
int에 대해 조금 더 자세히 설명하자면
크기는 4byte고 저장할 수 있는 값의 범위는 대략 -20억 ~ +20억입니다.
다양한 자료형을 표로 정리해보면 다음과 같습니다.
구분 | 데이터 형식 | 시스템 형식 | 유효 범위 | 설명 |
정수 | sbyte | System.SByte | -128에서 127까지 | 부호 있는 8비트 숫자 |
byte | System.Byte | 0에서 255까지 | 부호 없는 8비트 숫자 | |
short | System.Int16 | -32,768에서 32,767까지 | 부호 있는 16비트 숫자 | |
ushort | System.UInt16 | 0에서 65,535까지 | 부호 없는 16비트 숫자 | |
int | System.Int32 | -2,147,483,648에서 2,147,483,647까지 | 부호 있는 32비트 숫자 | |
uint | System.UInt32 |
0에서 4,294,967,295까지 |
부호 없는 32비트 숫자 | |
long | System.Int64 |
-9,223,372,036,854,775,808에서 9,223,372,036,854,775,807까지 |
부호 있는 64비트 숫자 | |
ulong | System.UInt64 | 0에서 18,446,744,073,709,551,615까지 | 부호 없는 64비트 숫자 | |
실수 | float | System.Single | 1.5x10-45에서 3.4x1038까지 | 32비트 부동 소수점 숫자 |
double | System.Double | 5.0x10-324에서 1.7x10308까지 | 64비트 부동 소수점 숫자 | |
decimal | System.Decimal | |||
논리 | bool | System.Boolean | true, false | 참, 거짓 |
문자 | char | System.Char | 16비트 유니코드 문자 | |
문자열 | string | System.String | 시스템 메모리 한정 | 유니코드 문자 집합 |
Object | object | System.Object | NET 세계의 모든 형식의 기본 클래스 |
정수와 실수형
정수와 실수형에 대해서는 위에서도 설명을 드렸기에 자료형에 대한 설명보다는
사용 시 발생할 수 있는 오류에 대해 이야기하고자 합니다.
이런 변수의 선언에 있어서 간혹 발생할 수 있는 오류 중 하나로 저장 가능한 값의 범위를 초과하여 넣는 경우입니다.
아래 코드를 예로 확인해보겠습니다.
상기 사진의 오류는 byte가 저장할 수 있는 값의 범위인 256을 넘었기에 발생한 오류입니다.
자료형을 선언할 때에는 이렇듯 사용하는 값의 범위 또한 고려해서 선언해야 합니다.
(저는 보통 정수는 int를, 실수는 decimal을 사용합니다.)
또한 실수를 사용할 경우 아래와 같은 오류가 발생할 수도 있습니다.
이는 C#이 부동소수점은 자동으로 double로 인식하는 현상에서 발생하는 문제입니다.
이러한 경우 오류창에서 설명처럼 9번 라인에 'f', 11번 라인에 'd'를 추가해주시면 해결됩니다.
문자와 문자열
문자를 저장할 수 있는 char형과 문자열을 저장할 수 있는 string형입니다.
아래의 예제에서도 나와있듯이 가장 큰 차이점은 싱글 쿼터와 더블 쿼터입니다.
char는 한글, 영어 관계없이 한 글자를 저장하며, string은 문자열을 전체를 저장할 수 있습니다.
Object형
object형은 .NET에 있는 모든 형식을 저장할 수 있습니다.
object는 시스템 형식 계층구조 최상단에 위치하는 형식입니다.
따라서 앞서 언급한 정수형, 실수형 등의 자료형은 모두 이 object를 상속받는 형식인 것입니다.
이러한 상속관계로 인해서 object에는 형식에 관계없이 사용할 수 있는 것입니다.
여기까지 가장 기본적인 자료형에 대해서 적어봤습니다.
미숙한 글 읽어주셔서 감사하며 글을 적다 보니 덜어낼 부분을 덜어내는 것이 힘드네요.
다음에는 자료형의 번외 느낌인 var형식과 Nullable 초기화에 대한 내용을 들고 오겠습니다.
감사합니다.
'Programming > .NET' 카테고리의 다른 글
[C#] 06. 연산자(수식, 증감, 할당) (0) | 2020.04.12 |
---|---|
[C#] 05. var와 object (0) | 2020.03.29 |
[C#] 03. 변수와 상수 (0) | 2020.03.13 |
[C#] 02. using 지시문과 네임스페이스 (0) | 2020.02.19 |
[C#] 0코드로 인해 종료되었습니다. (0) | 2020.02.08 |