본문 바로가기

공부 하기

C#프로그래밍 강좌 따라가기 | 데이터형 (5) - 값 형식과 참조 형식 & 데이터형 정리

여기까지 오는데 생각보다 시간이 오래걸렸다. 기본적인 내용이라고 해도 이전에 프로그래밍에 대한 지식이 거의 없는 나로서는 쉽게 넘어가는 부분에서 걸리는 부분이 많았다. 전반적인 내용을 이해하고 다시 보게되면 좀더 수월할거라는 말에 일단 정리하고 넘어가지만 왜 저런 문법을 쓰는지 저 코드가 왜 이런 예에서 등장하는지 다소 난해한 부분이 조금씩 있어 더디게 진행이 되는듯 하다. 10분짜리 강의도 돌려보며 2~3배의 시간이 걸리기도 해서 진도가 더디지만 앞으로 나올 강의들은 더 힘들 것으로 예상 된다. 


목차
  1. 데이터형
  2. 변환
  3. 표준입력
  4. 사용자 지정형
  5. 값 형식과 참조 형식
  6. 정리

값 형식과 참조 형식

값 형식은 선언과 동시에 사용가능한 것을 말고 바로 복사가 이루어지지만, 참조형식은 선언만 해서는 사용이 안되고  new를 통해서 생성을 해야 사용이 가능하고 new를 통해서 생성하지 않은 경우 자기 자신과 동일한 객체를 설명하는 별명으로 쓰인다. 

형식 상속 관계 
어려운거 나왔네..



값 형식
    System.Object + System.ValueType 에서 파생
    변수가 직접 값을 저장하는 형
    기본 데이터형, 구조체, 열거형
    선언 vs 생성(new)

    // 일반적 선언과 new를 통해 생성한 객체에 대한 초기값을 출력
    class Program
    {
        static void Main(string[] args)
        {
            int nVal1 = 12;
            int nVal2 = new int();
            Console.WriteLine("{0} {1}", nVal1, nVal2);
        }
    }


참조 형식
한 객체를 참조형 변수가 사용할 때 참조형에 의해 내용이 바뀌면 객체의 내용도 바뀜
Class, interface, delegate, 배열, string 은 참조형 
객체와 참조형 사이의 대입은 객체의 메모리 주소가 복사되는것 

    class Program
    {
        static void Main(string[] args)
        {
            int[] Array1 = { 1, 2, 3, 4 };
            int[] RefArray; // 참조형 배열 변수
            RefArray = Array1;
            RefArray[1] = 20;
            // 참조형에서 값을 변경했기 때문에 원래 배열에서도 값이 변경됨            
            Console.WriteLine("{0} {1} {2}", Array1[0], Array1[1], Array1[2]);
        }
    }


정리

기본 형식과 CTS 형식
데이터형에 관한 검증 코드
값 형식과 참조형식의 차이점 


데이터형은 문법을 다룰 수 있는 근간이 되는 것임으로 잘 알아두는것이 좋음.