Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 지식 보관소

메서드 오버로딩 본문

프로그래밍 언어/C#

메서드 오버로딩

야식은진리다 2019. 12. 27. 01:44

메서드 오버로딩은 매개변수의 수와 형식에 따라 메서드 이름을 여러 개 만들어야 하는 불편함을 해소시켜주는 존재다.

 

예를 들어서 숫자 두 개를 더하는 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