나의 지식 보관소
메서드 오버로딩 본문
메서드 오버로딩은 매개변수의 수와 형식에 따라 메서드 이름을 여러 개 만들어야 하는 불편함을 해소시켜주는 존재다.
예를 들어서 숫자 두 개를 더하는 Plus라는 이름의 메서드가 있다고 가정해보자. 우리는 정수를 두 개 입력받는 Plus 메서드 외에도 실수 형식 두 개를 받는 메서드, 정수 하나 실수 하나를 받는 메서드 등 거의 같은 역할을 하는 메서드임에도 불구하고 매개변수의 형식이 다르다는 이유 하나로 메서드를 여러 개 정의해야 한다.
그렇다면 메서드 이름 또한 intPlus, doublePlus 등 여러 개가 되었을지도 모른다. 하지만 c#에서 제공하는 메서드 오버로딩 덕택에 그럴 필요가 없다. 우리는 단지 메서드의 이름은 똑같이 유지한 채 매개변수의 수나 형식이 다른 메서드를 여럿 만들면 된다. 예를 들어 정수형 두 개를 입력받는 Plus 메서드와 실수형 두 개를 입력받는 Plus 메서드를 메서드 오버로딩을 사용해 정의하면 다음과 같은 형태가 된다.
1
2
3
4
5
6
7
|
int Plus(int a, int b){
return a+b;
}
double Plus(double a, double b){
return a+b;
}
|
예시와 같이 이름이 같고 매개변수가 다른 메서드 오버로딩을 사용하면, 우리의 친절한 컴파일러가 메서드 호출 시 인자로 넘겨지는 값의 형식을 분석해서 자동으로 알맞은 메서드를 호출해준다.
'프로그래밍 언어 > C#' 카테고리의 다른 글
선택적 매개 변수 (0) | 2019.12.27 |
---|---|
명명된 매개 변수 (0) | 2019.12.27 |
가변길이 매개 변수 params (0) | 2019.12.27 |
널 조건부 연산자 / 널 병합 연산자 (0) | 2019.12.27 |
ref와 out (0) | 2019.12.24 |