Contents
접기
728x90
1. 메서드 오버로딩이란?
같은 이름의 메서드를 매개변수 형태에 따라 여러 개 정의하는 것
즉, 이름은 같지만 매개변수의 개수, 타입이 다르면 여러 메서드를 만들 수 있다.
✔ 컴파일러가 자동으로 매개변수에 맞는 메서드를 찾아 실행한다.
📝예시
class Calculator {
public int Add(int a, int b) { // 정수
return a + b;
}
public double Add(double a, double b) { // 실수
return a + b;
}
public int Add(int a, int b, int c) { // 숫자세개(매개변수세개)
return a + b + c;
}
}
Calculator cal = new Calculator();
Console.WriteLine(cal.Add(1, 2)); // 정수 덧셈
Console.WriteLine(cal.Add(1.5, 2.3)); // 실수 덧셈
Console.WriteLine(cal.Add(1, 2, 3)); // 세 수 덧셈
2. 왜 사용하는가?
- 비슷한 기능을 가진 메서드를 하나의 이름으로 묶어 코드 가독성을 높임
- 다양한 입력 방식에 대응 가능
- 동일한 의미를 가진 여러 작업을 자연스럽게 표현 가능
3. 오버로딩 주의사항
반환값(return type)은 오버로딩의 기준이 되지 않음
반드시 매개변수의 수나 타입이 달라야 함
// ❌ 아래는 오버로딩 아님. 매개변수 동일하고 반환형만 다름
int Add(int a, int b) { return a + b; }
double Add(int a, int b) { return a + b; } // 에러 발생
📖 정리
✓ 오버로딩은 하나의 메서드 이름으로 다양한 매개변수를 처리할 수 있도록 해줌
✓ 매개변수의 개수나 자료형이 달라야 오버로딩이 가능
✓ 반환값만 다르고 매개변수가 같으면 오버로딩 불가능
✓ 코드의 일관성과 가독성을 높일 수 있음
728x90
'C# > 함수' 카테고리의 다른 글
[C#] 재귀함수(Recursion) (0) | 2025.04.17 |
---|---|
[C#] ref, out (0) | 2025.04.17 |
[C#] 매개변수 (0) | 2025.04.17 |
[C#] 함수 개념 (0) | 2025.04.16 |