📘프로그래밍/C#

[C#] 05 메서드 오버로딩

bohemdev1 2024. 10. 28. 21:27

정의

 

하나의 메서드 이름으로 여러 개의 메서드를 구현하는 것

 

 

 

의의

 

매개변수의 형식 만 다르다면 같은 메서드 이름을 사용할 수 있습니다. 이는 하나의 메서드에 다양한 형식의 데이터를 매개변수로 사용하고자 하는 경우 효과적입니다. 

 

 

 

기능

 

메서드 오버로딩의 필수 조건 은 다음과 같습니다.

  • 메서드 명이 서로 일치합니다.
  • 매개변수 형식이 상이합니다.

 

메서드 오버로딩을 사용한 선언 예시는 다음과 같습니다.

// 예) 매개변수의 합을 반환하는 함수 선언

// 매개변수 형식: 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