나미/C#

[C#] 5. Object와 사용 이유

규남 2023. 7. 3. 01:27
반응형

<코드 입력>

namespace Test
{
    internal class Program
    {
        static void Main(string[] args)
        {
            /*
             * object란
             * 객체, 물건이라는 영어단어로
             * 어떠한 데이터 형식이든 모두 사용가능한 형태
             */

            object a = 123;             // int a = 123
            object b = 1.23f;           // float b = 1.23f
            object c = 'a';             // char c = 'a'
            object d = "abcde";         // string d = "abcde"

            Console.WriteLine(a);
            Console.WriteLine(b);
            Console.WriteLine(c);
            Console.WriteLine(d);

            /*
             * 그럼 여기서 전부 object형을 그럼 쓰면 간단한데
             * 왜 다른 형식을 배우고 사용할까?
             * 
             * c#에서 object는 모든 객체의 기본 클래스이지만
             * 모든 데이터를 object로 저장하는것은 효율이 떨어진다.
             * 이유는 object의 경우 데이터의 크기가 정해져 있지 않기때문에
             * 큰 데이터를 저장하면 메모리 낭비가 발생할 수 있다
             * 
             * 또한, 모든 데이터형식을 표현하거나 보여줄수는 있지만
             * 데이터 저장할 수 있는 기능은 없기 때문에 특정 데이터 형식을
             * 저장하려면 해당 데이터 형식으로 변환하여야 한다.
             * 
             * 그래서 보통은 데이터를 주고받거나 클래스 또는 함수, 메소드등
             * 처리를 위해서 object를 사용하며, 최종적으로 데이터를 저장,
             * 보관 등을 하기위해선 각각에 맞는 형식으로 변환하여 사용
             * 
             * 그리고 개발자가 코드를 보고 이해할때 object보단 직관적인
             * 기본 자료형을 사용함에 따라 가시성이 좋아진다.
             * 이처럼 필요한 경우를 제외하곤 object를 남용하진 않는다.
             */

            object e = 123;             // int e = 123

            // (int)e : 현재 object 형식의 e변수를 int 형식의 ee변수에 
            // 대입하기 위하여 같은 형식으로 변환해주는 것. (형변환)
            int ee = (int)e;
            Console.WriteLine();
            Console.WriteLine(ee);
        }
    }
}

<결과 확인>

728x90
반응형

'나미 > C#' 카테고리의 다른 글

[C#] 7. var 키워드  (0) 2023.07.03
[C#] 6. bool 자료형(논리형)  (0) 2023.07.03
[C#] 4. 문자와 문자열  (0) 2023.06.29
[C#] 3. 실수형 변수 출력해보기  (0) 2023.06.28
[C#] 2. 정수형 변수 출력해보기  (0) 2023.06.27
[C#] 1. Hello, World 출력해보기  (0) 2023.06.27