티스토리 뷰


1. Data Type
    1) CTS (Common Type System의 약자어다.) - 공통 타입 시스템-

        -  닷넷 프레임 워크에서 여러다른 언어와 동일하게 데이터형 사용을 
           유도하기 위해 정의해놓은 것이다.

CTS란?
-> 닷넷은 모든 데이터형을 객체로 정의 해놓은 CTS를 통해 언어마다 자신의 데이터형을 따로
    사용 하지 않고  언어 통합성을 구현하여, 어떤 형식의 데이터형을 사용해도 서로 통합될 수
    있도록, 언어나 시스템 환경에 관계없이 동일한 데이터 형이 유지될 수 있는 CTS
    만들어 놓게 되었다.

-> CLR의 중요한 부분 중 하나이며,
    CTS에서 정의하는 데이터 형은 크게 값 형과 첨조 형으로 분류된다.
      
      ⑴ 값 형 (Value Type)
           - 값 형은 데이터를 메모리의 스택(stack)에 할당되어 직접 저장하는 값을 뜻한다.


예제)   값 형 알아보기.
      int  i = 1 ;    -> i 가 1이라고 변수에 지정한다.
         int  j = i  ;    -> j 가 i의 값을 가져와 변수에 1이라고 정의한다.  
         i =  i + 1 ;    -> i에 1을 더해도 j의 값은 2라고 나오는것이 아니라. 1이라고 나오게된다.
값형은 독자적으로 데이터의 복사본을 가지고 있기 때문에 서로에게 영향을 주지 않는다.
그렇기 때문에 마지막에 했던 i에 1을 더해도 j는 아무런 영향을 받지 않는다.

- 값형 변수는 자신에게 활당된 메모리 영역에 값을 직접 저장한다.


      ⑵ 참조 형 (Reference Type)
           - 참조 형은 실제 저장하는 데이터 값을 메모리의 힙(Heap)영역에 저장하는 값을 뜻한다.

예제)   참조 형 알아보기.     

class Class1

{

        public void Ref(ref int i, ref int j)

        {

              i++;

              j++;

        }

} 

class Class2

{

        public static void Main(string[] args)

        {

            Class1 cs = new Class1();

            int i = 1;

            int j = 2;

            Console.WriteLine("int i의 값은 : {0}", i); // 1 출력

            Console.WriteLine("int j의 값은 : {0}", j); // 2 출력

 

            cs.Ref(ref i, ref j);

            Console.WriteLine("int i의 값은 : {0}", i); // 2 출력

            Console.WriteLine("int j의 값은 : {0}", j); // 3 출력

        }

 }

실제 저장 되어있는 데이터 값을 메모리의 힙영역에서 저장한다.
-실제 데이터는 별도의 메모리 영역에 저장된다.

  참조형은 참조형에서 값을 변경하면 가리키고 있는 데이터의 값까지 바뀌는 것이다


    2) 내장형 데이터
       -> 값형에는 내장형 데이터와 사용자 정의 데이터가 존재한다. 그중.
           내장형 데이터는 크게 숫자형과 문자형 그리고 불리언형, 이렇게 3가지로 나뉜다.
           그리고 C#에서는 나름대로 테이더 타입을 정의해서 두고 있는데 이 모든것은
         CLS의 규칙을 전제로 만든것들이다.

System 데이터 타입인 내장형 테이터 타입.

분류 키워드 구조체형 크기
(바이트)
범위 설명
숫자형
(정수형)
SByte System.Sbyte 1 -128에서 127까지 부호있는 8비트
byte  System.Byte 1 0에서 255까지 부호있는 8비트
short  System.Int16 2 -32,768에서 32,767까지 부호있는 16비트
ushort  System.Uint16 2 0에서 65,535까지 부호있는 16비트
int System.int32 4 -2,147,483,648에서
2,147,483,647까지
부호있는 32비트
uint System.Uint32 4 0에서 4,294,967,295까지 부호있는 32비트
long  System.int64 8 -9,223,372,036,854,775,808에서
9,223,372,036,854,775,807까지
부호있는 64비트
ulong System.Uint64 8 0에서
18,446,744,073,709,551,615
부호있는 64비트
문자형 char   System.Char 2 U+0000에서 U+ffff까지 16비트 유니코드 문자
숫자형
(실수형)
float   System.Single 4

32비트 부동 소수점
double    System.Double 8
64비트 부동 소수점
decimal System.Decimal 16
부호있는 96비트
문자
열형
string   System.String   시스템의 메모리가
지원할 수 있을 때까지
유니코드로 조합
가능한 모든 문자
불리
언형
bool   System.Boolean 1(비트) true 혹은 false 진위판단
  Object System.Object   모든범위를 담고 있는 어머니격 모든 타입들의
기본 클래스

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Total
Today
Yesterday