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

C# 명시적 형식 변환(Explicit Conversion)이란? 캐스트 연산자 사용법과 예제

C# 명시적 형식 변환이란 무엇인가?

명시적 형식 변환(Explicit Conversion)은 개발자가 직접 캐스트 연산자(cast operator)를 작성하여 수행하는 형식 변환 방식입니다. C#에서는 데이터 손실의 위험이 있는 변환, 예를 들어 큰 범위의 타입(double)을 작은 범위의 타입(int)으로 변환하는 경우 컴파일러가 자동으로 처리해 주지 않습니다. 따라서 사용자가 반드시 변환 의도를 명시적으로 밝혀야 합니다.

명시적 변환은 미리 정의된 변환 규칙에 따라 사용자가 직접 캐스트 표현식을 통해 수행하며, 변환 과정에서 소수점 이하 값이 잘리는 등 데이터 손실이 발생할 수 있다는 점을 항상 염두에 두어야 합니다.

double을 int로 변환하는 예제

다음 예제는 double형 변수를 int형으로 캐스트 연산자를 사용해 변환하는 기본적인 코드입니다.

using System;

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

            Console.WriteLine("double: " + d);

            i = (int)d;
            Console.WriteLine("int: " + i);
            Console.ReadKey();
        }
    }
}

출력 결과

double: 345.78
int: 345

명시적 형식 변환의 주요 특징

  • 캐스트 연산자 필수: (타입) 형태로 변환할 대상 앞에 직접 지정해야 합니다.
  • 데이터 손실 가능: 위 예제에서처럼 double 값 345.78은 int로 변환되며 소수점 이하가 버려져 345가 됩니다.
  • 오버플로우 검사: checked 연산자를 함께 사용하면 변환 시 범위 초과 여부를 검사할 수 있습니다.
  • 대안 메서드: Convert.ToInt32(), int.Parse() 등의 메서드로도 형식 변환을 수행할 수 있습니다.

이처럼 명시적 형식 변환은 개발자가 데이터 손실 가능성을 인지하고 책임지고 변환을 지정하는 방식이므로, 변환 전후의 값 범위와 정밀도를 신중하게 고려하는 것이 좋습니다.