Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 형 변환(타입 캐스팅) 완벽 가이드: 암시적 변환부터 명시적 변환까지

C# 형 변환(타입 캐스팅)이란?

형 변환(Type Casting)은 하나의 데이터 타입을 다른 데이터 타입으로 변환하는 과정을 의미합니다. C#에서는 크게 두 가지 방식의 형 변환을 지원합니다.

암시적 형 변환(Implicit Conversion)

암시적 형 변환은 C# 컴파일러가 타입 안전(type-safe)한 방식으로 자동으로 수행하는 변환입니다. 대표적인 예로 다음과 같은 경우가 있습니다.

  • 작은 크기의 정수형에서 더 큰 크기의 정수형으로 변환 (예: intlong)
  • 파생 클래스(자식 클래스)에서 기본 클래스(부모 클래스)로 변환
int num = 100;
double d = num; // 암시적 변환: int → double, 별도 연산자 불필요

명시적 형 변환(Explicit Conversion)

명시적 형 변환은 사용자가 직접 캐스트 연산자(cast operator)나 미리 정의된 변환 함수를 사용하여 수행하는 변환입니다. 데이터 손실이 발생할 수 있는 변환이기 때문에 개발자가 명시적으로 의도를 표현해야 합니다.

double d = 9.78;
int i = (int)d; // 명시적 변환: double → int, 캐스트 연산자 필수

C# 기본 제공 형 변환 메서드

C#은 Convert 클래스를 통해 다양한 내장 형 변환 메서드를 제공합니다. 주요 메서드는 다음과 같습니다.

번호메서드 및 설명
1ToBoolean
가능한 경우 해당 타입을 Boolean(true/false) 값으로 변환합니다.
2ToByte
해당 타입을 8비트 부호 없는 정수인 byte 타입으로 변환합니다.
3ToChar
가능한 경우 해당 타입을 단일 유니코드 문자(char)로 변환합니다.
4ToDateTime
정수 또는 문자열 타입을 날짜·시간(DateTime) 구조체로 변환합니다.
5ToDecimal
부동 소수점 또는 정수 타입을 decimal 타입으로 변환합니다.
6ToDouble
해당 타입을 배정밀도 부동 소수점인 double 타입으로 변환합니다.

예제: 정수를 문자열로 변환하기

다음 예제는 ToString() 메서드를 사용하여 정수 타입을 문자열 타입으로 변환하는 방법을 보여줍니다.

using System;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            int i = 20;

            Console.WriteLine(i.ToString());
            Console.ReadKey();
        }
    }
}

출력 결과

20

위 예제에서 i.ToString()은 정수 값 20을 문자열 "20"으로 변환하여 화면에 출력합니다. 이처럼 C#은 상황에 맞는 다양한 형 변환 방식을 제공하므로, 각 방식의 특성과 데이터 손실 여부를 이해하고 적절히 활용하는 것이 중요합니다.