[C# 4.0] 선택적 매개변수(Optional Parameter)

eunjin lee·2022년 10월 4일
0

C# 9.0 프로그래밍

목록 보기
34/50

선택적 매개변수(optional parameter)을 이용하여 매개변수 중 값이 전달되지 않은 인자가 있을 때 미리 지정된 기본값을 사용할 수 있다.


💡 샘플 코드

class Person
{
	public void PrintInfo(string name, int age = 0, string address = "Korea")
    {
    	Console.WriteLine(string.Format("{0} : {1} in {2}",name, age, address));
    }
}

static void Main(string[] args)
{
	Person person = new Person();
	person.PrintInfo("Tom");
	person.PrintInfo("David", 20);
	person.PrintInfo("Sarah", 30, "France");
}

✅ 결과

Tom : 0 in Korea
David : 20 in Korea
Sarah : 30 in France
  • optional parameter는 ref, out 예약어와 함께 사용할 수 없다.
  • optional parameter는 모든 필수 매개변수의 뒤에 와야 한다.
  • optional parameter 뒤에 params 유형의 매개변수를 정의할 수 있다.
  • params 유형의 매개변수는 optional parameter가 될 수 없다. 즉 기본값을 지정할 수 없다.
  • optional parameter의 기본 값은 반드시 상수 표현식이어야 한다.
  • optional parameter에 전달되는 인자는 차례대로 대응되며, 중간에 생략돼 전달될 수 없다.

💡 샘플 코드

class Person
{
	string txt = "txt";

	public void PrintInfo(string name, int age = 0, string address = "Korea") { }

	public void PrintInfo(string name, int age = 0, string address = "Korea", string memo = txt) { }
	//선택적 매개변수의 기본값이 상수식으로 표현되지 않음.

	public void PrintInfo(string name, int age = 0, string address = "Korea", bool isChristian) { }
	//선택적 매개변수 뒤에 필수 매개변수가 올 수 없음.

	public void PrintInfo(params string[] familyMember = new int[] { "Mother", "Father"}) { }
	//params 유형을 선택적 매개변수로 쓸 수 없음.

}

static void Main(string[] args)
{
	Person person = new Person();
	person.PrintInfo("Jane", "USA"); //컴파일 에러 : 중간을 생략하여 전달할 수 없다.

}

0개의 댓글