Section 36.2: MSDN 의 묵시적 (implicit) 연산자 예제
class Digit {
public Digit(double d) {
val = d;
}
public double val;
// Digit 을 double 타입으로 변환하는 사용자 정의 연산자
public static implicit operator double(Digit d) {
Console.WriteLine("Digit to double implict conversion called");
return d.val;
}
// double 타입을 Digit 으로 변환하는 사용자 정의 연산자
public static implicit operator Digit(double d) {
Console.WriteLine("double to Digit implict conversion called");
return new Digit(d);
}
}
class Program {
static void Main(string[] args) {
Digit dig = new Digit(7);
// 아래 코드는 묵시적 "double" 연산자를 호출한다
double num = dig;
// 아래 코드는 묵시적 "Digit" 연산자를 호출한다
Digit dig2 = 12;
Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
Console.ReadLine();
}
}
출력 결과:
Digit to double implict conversion called
double to Digit implict conversion called
num = 7 dig2 = 12
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
37.2: 다중 상속된 객체를 원하는 기본 (base) 타입으로 캐스팅하기 (0) | 2021.12.13 |
---|---|
37.1: 타입 변환 (casting) 없이 타입 호환성 여부 확인하기 (0) | 2021.12.09 |
36.1: 명시적 (explicit) 타입 변환하기 (0) | 2021.12.02 |
35.4: 컴파일 시점에는 알 수 없는 특정 타입 처리하기 (0) | 2021.12.02 |
35.3: dynamic 반환하기 (0) | 2021.11.24 |