개발 공부/C# 기초

[C# 기초] 메서드 오버로딩(Method Overloading), 디폴트 매개변수(Default Parameter)

아밍나 2022. 10. 18. 15:25
728x90

1. 메서드 오버로딩(Method Overloading)

데이터 타입이 다른 경우, 함수 이름이 같더라도 사용할 수 있다.

→ 컴파일러가 매개 변수의 형식과 개수를 분석하여 어떤 함수를 호출할 지 찾아낸다.

public void Load(int num, bool loading = false) 
{ 
	Load(1.2);
}

public void Load(double num, bool loading = false)
{
	...
}

2. 디폴트 매개변수(Default Parameter)

기본값이 제공된 매개변수

- 기본값 설정한 경우(디폴트 매개변수)

//파라미터에 기본값 설정
public void Load1(int num, bool loading = false) 
{ 
	...
}
Load1(1) //에러 X
Load1(1, true) //에러 X

- loading은 값을 전달받지 못해도 기본값(false)을 사용한다.

→ Load1(1)처럼 loading에 대한 값을 지정하지 않아도 에러가 나지 않는다.

- Load1(1, true)처럼 loading 기본값(false)이 아닌 다른 값(true)을 설정할 수 있다.

→ 다른 값을 설정하는 경우가 적을 때 활용한다.

 

디폴트 매개변수를 활용하면 함수 호출 시 전달할 인수의 수를 유연하게 설정할 수 있다.

- 기본값 설정하지 않은 경우

//파라미터에 기본값 설정 X
public void Load2(int num, bool loading)
{
	...
}
Load2(1) //에러
Load2(1, false)

- Load2(1)은 두 번째 매개변수의 값을 특정할 수 없기 때문에 에러가 발생한다.

728x90
반응형