C#에는 세 종류의 자료형이 있다.

 

1. 값 형식 (Value Type)

2. 참조 타입 (Reference Type)

3. 포인터 타입 (Pointer Type)

 

이 포스트에서는 값 형식에 대해서 알아본다.

 

자료형이 무엇인가에 대한 문서는 아래 C언어의 자료형의 내용을 참고한다. C와 비교하면 C#처럼 객체지향 프로그래밍 언어의 자료형은 조금 차이가 있지만, 코딩할 때 쓰는 기본 자료형의 의미는 거의 같다고 볼 수 있다.

 

 

C언어 2-1 | 자료형 | char 형 변수의 사용

C언어의 자료형을 배워본다. 자료형은 무엇일까? 자료형을 논하기 전에 먼저 컴퓨터가 정보를 어떻게 다루는지 알아 봐야한다. 사람은 10진법에 익숙하지만 컴퓨터는 이진법으로 계산한다. 컴퓨

digiconfactory.tistory.com

값 형식(Value Type)

수치 형식, 값 타입이라고도 해석할 수 있다. MSDN 에서는 기본 제공 형식이라고 부른다. 값 타입의 변수에는 숫자값이 들어가고, 값을 직접 할당할 수 있다.

 

C#의 값 타입은 System.ValueType 클래스에서 파생한다.

 

값 타입은 직접 데이터를 가지고 있다. int, char, double 자료형은 정수형, 문자, 실수형 자료를 각각의 변수에 저장한다. int 형 변수 a1에 10을 저장하는 것 처럼 직접 저장하는 것이다. 직접 데이터를 가진다는 것은 변수와 숫자가 직접 연결되어 있다는 의미다. 값 타입들을 모아서 참조형 자료형인 클래스를 만들 수 있다.

 

값 타입의 종류는 아래와 같다. 키워드를 사용하여 변수를 만들 수 있다.

C# Keyword descrpition 범위
bool 논리값 true or false
byte 8비트 부호없는 정수 0~255
sbyte 8비트 부호있는 정수 -128~127
char 16비트 단일 유니코드 문자 적합한 값 예> 'a' 유니코드 \u0058
decimal 128 비트 decimal 타입, 재무와 돈계산 (+ or -)1.0 x 10e-28 ~ 7.9 x 10e28
double 64비트 double 부동소수형 -1.79769313486232e308 ~
1.79769313486232e308
float 32비트 single 부동소수형 -3.402823e38 to 3.402823e38
int 32비트 부호있는 정수 -2,147,483,648 ~ 2,147,483,647
uint 32비트 부호없는 정수 0 ~ 4,294,967,295
long 64비트 부호있는 정수 -9,223,372,036,854,775,808 ~
9,223,372,036,854,775,807
ulong 64비트 부호없는 정수 0 ~ 18,446,744,073,709,551,615
short 16비트 부호있는 정수 -32,768 ~ 32,767
ushort 16비트 부호없는 정수 0 ~ 65,535

 

다음의 소스코드는 플래폼에 따라 다르게 나올 수 있다. sizeof는 기본 제공되는 자료형의 메모리 크기를 리턴한다.

using System;

namespace CsharpDatatype
{
    class SizeofDataType
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Size of    bool: {0} byte",sizeof(bool));
            Console.WriteLine("Size of    byte: {0} byte",sizeof(byte));
            Console.WriteLine("Size of   sbyte: {0} byte",sizeof(sbyte));
            Console.WriteLine("Size of    char: {0} byte",sizeof(char));
            Console.WriteLine("Size of decimal: {0} byte",sizeof(decimal));
            Console.WriteLine("Size of  double: {0} byte",sizeof(double));
            Console.WriteLine("Size of   float: {0} byte",sizeof(float));
            Console.WriteLine("Size of     int: {0} byte",sizeof(int));
            Console.WriteLine("Size of    uint: {0} byte",sizeof(uint));
            Console.WriteLine("Size of    long: {0} byte",sizeof(long));
            Console.WriteLine("Size of   ulong: {0} byte",sizeof(ulong));
            Console.WriteLine("Size of   short: {0} byte",sizeof(short));
            Console.WriteLine("Size of  ushort: {0} byte",sizeof(ushort));
        }
    }
}

자료형 메모리 크기

<자료형 사용 예제>

 

기본 자료형은 아래와 같이 사용한다. 이 모든 자료형을 당장 외우지 않아도 된다. tutorial 을 통해서 하나씩 알아가 볼 것이다.

using System;

namespace CsharpDatatype
{
    class SizeofDataType
    {
        static void Main(string[] args)
        {
            bool check = true; // true or false
            byte n1 = 255;
            sbyte n2 = 127;
            char c1 = (char)65; // 2BYTES 

            decimal d1 = 7.9e28M;
            double d2 = 1.79e308;
            float f1 = -3.4e38F;

            int n3 = 2_147_483_647;
            uint n4 = 4_294_967_295;
            long n5 = 9_223_372_036_854_775_807;
            ulong n6 = 18_446_744_073_709_551_615;

            short n7 = 32767;
            ushort n8 = 65535;

            Console.WriteLine("{0,30}", check);
            Console.WriteLine("{0,30}", n1);
            Console.WriteLine("{0,30}", n2);
            Console.WriteLine("{0,30}", c1);
            Console.WriteLine("{0,30}", d1);
            Console.WriteLine("{0,30}", d2);
            Console.WriteLine("{0,30}", f1);
            Console.WriteLine("{0,30}", n3);
            Console.WriteLine("{0,30}", n4);
            Console.WriteLine("{0,30}", n5);
            Console.WriteLine("{0,30}", n6);
            Console.WriteLine("{0,30}", n7);
            Console.WriteLine("{0,30}", n8);
        }
    }
}

기본 자료형 예제

자세한 사항이 궁금하면 MSDN 자습서를 참고한다.

 

마이크로 소프트 MSDN 빌트인

 

기본 제공 형식- C# 참조

C# 기본 제공 값 및 참조 형식 배우기

docs.microsoft.com

공유하기

facebook twitter kakaoTalk kakaostory naver band