implicit(C# 참조)

업데이트: 2007년 11월

implicit 키워드는 암시적인 사용자 정의 형식 변환 연산자를 선언하는 데 사용됩니다. 이 키워드를 사용하면 사용자 정의 형식과 다른 형식 간의 암시적 변환이 가능합니다. 단, 변환으로 인해 데이터가 손실되지 않는 경우에 한합니다.

예제

    class Digit
    {
        public Digit(double d) { val = d; }
        public double val;
        // ...other members

        // User-defined conversion from Digit to double
        public static implicit operator double(Digit d)
        {
            return d.val;
        }
        //  User-defined conversion from double to Digit
        public static implicit operator Digit(double d)
        {
            return new Digit(d);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Digit dig = new Digit(7);
            //This call invokes the implicit "double" operator
            double num = dig;
            //This call invokes the implicit "Digit" operator
            Digit dig2 = 12;
            Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
            Console.ReadLine();
        }
    }
}

암시적 변환은 불필요한 캐스트를 제거하여 소스 코드를 읽기 쉽도록 합니다. 그러나 암시적 변환을 수행할 때는 프로그래머가 한 형식을 다른 형식으로 명시적으로 캐스팅할 필요가 없으므로 예기치 않은 결과가 발생하지 않도록 주의해야 합니다. 일반적으로 프로그래머가 개입하지 않고 암시적 변환 연산자를 안전하게 사용하려면 해당 연산자에서 예외를 throw하거나 정보가 손실되지 않도록 해야 합니다. 변환 연산자가 이러한 기준을 충족시키지 못하는 경우 해당 연산자를 explicit로 표시해야 합니다. 자세한 내용은 변환 연산자 사용을 참조하십시오.

C# 언어 사양

자세한 내용은 C# 언어 사양에서 다음 단원을 참조하십시오.

  • 6.1 암시적 변환

  • 10.9.3 변환 연산자

참고 항목

작업

방법: 구조체 간의 사용자 정의 변환 구현(C# 프로그래밍 가이드)

개념

C# 프로그래밍 가이드

참조

C# 키워드

explicit(C# 참조)

operator(C# 참조)

기타 리소스

C# 참조