다음 코드의 실행 결과는?
다음 코드의 실행 결과는?
static string Join(string a, string b)
{
return a + "-" + b;
}
static string Join(string a, string b, string c)
{
return a + "+" + b + "+" + c;
}
static int Join(int a, int b)
{
return a + b;
}
static void Main(string[] args)
{
Console.WriteLine(Join("A", "B"));
Console.WriteLine(Join("X", "Y", "Z"));
Console.WriteLine(Join(10, 20));
}
정답: A
여러 타입과 개수로 오버로딩된 메서드를 호출하는 예제입니다.
각 호출 분석:
1.
Join("A", "B")
⦁ 문자열 2개 → 첫 번째 메서드 호출
⦁
return "A" + "-" + "B"
→ "A-B"2.
Join("X", "Y", "Z")
⦁ 문자열 3개 → 두 번째 메서드 호출
⦁
return "X" + "+" + "Y" + "+" + "Z"
→ "X+Y+Z"3.
Join(10, 20)
⦁ 정수 2개 → 세 번째 메서드 호출
⦁
return 10 + 20
→ 30컴파일러의 메서드 선택 과정:
⦁ 인수의 개수 확인
⦁ 인수의 타입 확인
⦁ 가장 적합한 오버로드된 메서드 선택
오버로딩의 실용적 활용:
⦁ 동일한 작업을 다양한 타입/개수로 처리
⦁ 사용자가 타입을 신경 쓰지 않고 호출 가능
⦁ 코드의 직관성과 재사용성 향상
💡 학습 팁
이 문제를 포함한 C# 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.