컴파일러는 호출문의 인수 개수와 타입을 보고 적절한 메소드를 선택하는데 이때 오버로드 결정하기라는 정책 적용
- 타입비교, 지정자, 타입간의 암시적, 명시적 변환 규칙 고려
- Method(short)가 없다면 Method(int) 호출,
- Method(int)가 없다면 Method(long) 호출
- short는 암시적으로 int로 변환가능하기때문이다
- uint는 부호를 표시할 수 없는 타입이라 호환되지않는다
- 컴파일러의 판단은 나름대로 합리적이며 편리하다
캐스트 연산자에도 문제가 있다
- 암시적으로 호출할 때는 어떤 버전이 호출될지 직관적으로 알기가 쉽지 않다
'Study > C#' 카테고리의 다른 글
C# 클래스 상속 - 1. 상속 (0) | 2011.12.28 |
---|---|
인터페이스 & 델리게이트 (0) | 2011.12.27 |
C# 함수형 멤버 - 3. 연산자 (캐스팅) (0) | 2011.12.22 |
C# 함수형 멤버 - 3. 연산자 (오버로딩 ex) (0) | 2011.12.22 |
C# 함수형 멤버 - 3. 연산자 (오버로딩) (0) | 2011.12.22 |