본문 바로가기
C#

C#] Optional Parameters

by Fastlane 2024. 2. 14.
728x90
반응형

Optional Parameters이란?

함수 호출 시, parameter를 선택적으로 포함할 수 있다. 피자의 추가토핑 처럼, 원하면 추가하고 없어도 괜찮다. 

public void OrderPizza(string size, string extraTopping = "")
{
 ...
}

위 코드에서 extraTopping이 선택적 파라미터이다. OrderPizza  호출 시, extraTopping을 포함하거나 아니면 size만 전달해도 된다. 

 

Optional parameters는 코드에 확정성과 단순함을 가져온다. 

  • method overloads를 줄여준다. 하나의 함수가 여러 다른 일을 할 수 있다. 
  • 가독성을 늘린다. method versions 사이를 왔다갔다 할 필요가 없다. 
  • flixible API를 제공한다. API 사용자는 특정 parameters를 생략할 수 있다. 

Optional Parameters 동작

선택적 파라미터는 default parameter values 개념을 사용한다. 

public void OrderPizza(string size, string extraTopping = "Cheese")
{
 ...
}

함수 호출 시, extraTopping 값을 명시하지 않은 경우, C#은 자동으로 기본값인 Cheese를 사용한다. 

 

Optional Datetime Parameter

public void LogEvent(string eventDetails, DateTime eventTime = default(DateTime))
{
 ...
}

 

Optional Out Parameter

out은 함수에서 하나 이상의 return 값을 원할떄 사용하는 키워드이다. out parameter를 선택적으로 사용할 수 있는가?

 

// Optional out parameter by using method overloading
public bool TryParse(string str)
{
  return int.TryParse(str, out int _);
}

public bool TryParse(string str, out int result)
{
	return int.TryParse(str, out result);
}

함수 오버로딩을 사용해서 out parameter oprtional을 만들었다. 

 

Constructor with Optional Parameters

함수와 동일하게 사용하면 된다. 

728x90
반응형

댓글