C#/함수

[C#] 메서드 오버로딩(Method Overloading)

도도돋치 2025. 4. 17. 12:05
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