본문 바로가기

공부 하기

C#프로그래밍 강좌 따라가기 | 데이터형 (2) - 데이터 변환

지난 시간에 데이터형중 일부에 대해서 배웠는데 int나 float는 자주 보던거고 string 까지도 자주 사용했던거라 쉽게 머리속에 들어왔던것 같다. 이 데이터형을 무작정 외우기 보다는 자주 사용해 봄으로서 익히라는 말이 좋게 와 닿았다. 또한 MSDN 을 자주 활용하라고 해서 들어가 string을 선택하고 f1을 눌렀더니 아주 자세하게 설명이 나왔다. 계속 공부를 해 나갈 수 있다면 자주 찾게 될듯하다. 





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

c#은 이미 잘 만들어져 있는 것들을 잘 가져와서 잘 사용하는것이 중요하다고 한다. 
특히 변환 부분을 명확하게 하는것이 좋다고 한다. 

ToString(문자열로 변환)

ToString()
기본 데이터형.Parse() // 문자열을 다시 기본 데이터형으로 변경 
Convert.Toint32() 
Convert.ToSingle() //single는 float 
Convert.ToXXXXXX()

    // 데이터 변환 예제
    class Program
    {
        static void Main(string[] args)
        {
            int value1 = 127;
            string str1 = value1.ToString();
            Console.WriteLine(str1);
          
            int value2 = Convert.ToInt32(str1);
            Console.WriteLine(value2);
            
            string str2 = "3.14";
            float value3 = float.Parse(str2);
            Console.WriteLine(value3);
        }
    }

박싱(boxing) 과 언박싱(unboxing)

박싱 : 데이터형을 최상위 object 형으로 변환하여 힙(heap 메모리 = 임의로 쓸 수 있는 메모리) 에 저장
int m = 123;
object obj = m; //모든 데이터형은 오브젝트 형을 상속 받기 때문에 데이터 형변환이 가능함. 

언박싱
힙에 저장된 형식을 다시 원래의 형식으로 변환 
int n = (int)obj;

    // int 형 값을 박싱한 후에 다시 언박싱 해 출력
    // 박싱과 언박싱 과정에서 메모리 공유가 발생하는지, 복사가 발생하는지 확인
    class Program
    {
        static void Main(string[] args)
        {
            int i = 123;
            object obj = i;
            Console.WriteLine("{0}", (int)obj);
            // 123을 출력
            int ii = 123;
            object o = ii;
            ii = 456;
            Console.WriteLine("{0} {1}", ii, (int)o);
            // ii 는 456을 출력 o 는 123을 출력 // 메모리를 별도로 사용하기 때문에
        }
    }