정의
하나의 메서드 이름으로 여러 개의 메서드를 구현하는 것
의의
매개변수의 형식 만 다르다면 같은 메서드 이름을 사용할 수 있습니다. 이는 하나의 메서드에 다양한 형식의 데이터를 매개변수로 사용하고자 하는 경우 효과적입니다.
기능
메서드 오버로딩의 필수 조건 은 다음과 같습니다.
- 메서드 명이 서로 일치합니다.
- 매개변수 형식이 상이합니다.
메서드 오버로딩을 사용한 선언 예시는 다음과 같습니다.
// 예) 매개변수의 합을 반환하는 함수 선언
// 매개변수 형식: int, int
int Plus(int a, int b)
{
return a + b;
}
// 오버로딩_ 매개변수 형식: float, float
int plus(float a, float b)
{
return (int)(a + b);
}
// 오버로딩_ 매개변수 형식: int, int, int
int Plus(int a, int b, int c)
{
return a + b + c;
}
반환 데이터형이 다르더라도 매개변수 형식이 동일하면 중복 함수 선언으로 에러가 발생합니다. 다음은 그 예시입니다.
// 예) 매개변수의 합을 반환하는 함수 선언
// 매개변수 형식: int, int
int Plus(int a, int b)
{
return a + b;
}
/* !!Error!! */
// 매개변수 형식: int, int
double Plus(int c, int d)
{
return c + d;
}
오버로딩한 메서드의 호출 방법은 일반 함수의 호출 방법과 동일합니다. 메서드 호출 시 전달되는 매개변수 구성에 맞게 오버로딩된 메서드를 자동 검색하여 호출합니다. 전달하는 매개변수 구성에 맞는 선언된 오버로딩 메서드가 없는 경우 에러가 발생합니다. 다음은 그 예시입니다.
int Plus(int a, int b)
{
return a + b;
}
int Plus(float a, float b)
{
return (int)(a + b);
}
// 예) 정수 및 실수의 합을 반환하는 함수
void Start()
{
Debug.Log(Plus(1, 2));
Debug.Log(Plus(1.0f, 2.4f));
}
/*
3
3
*/
'📘프로그래밍 > C#' 카테고리의 다른 글
[C#] 07 구조체 (0) | 2024.10.29 |
---|---|
[C#] 06 디폴트 매개변수 (0) | 2024.10.28 |
[C#] 04 열거형 (0) | 2024.10.26 |
[C#] 03 메서드 (0) | 2024.10.24 |
[C#] 02 배열 (0) | 2024.10.19 |