명명된 인자를 사용하면 인자를 매개 변수 목록 내의 해당 위치가 아닌 해당 이름과 일치시켜 인자를 지정하여 전달할 수 있다. 선택적 인자를 사용하면 일부 매개 변수에 대한 인자를 생략할 수 있다.
두 기법 모두 메서드, 인덱서, 생성자 및 대리자에 사용할 수 있다.
명명된 인자(Named Arguments)
명명된 인자를 사용하면 호출된 메서드의 매개 변수 목록에 있는 매개 변수 순서와 인자 순서를 일치시키지 않아도 된다.
PrintOrderDetails("Gift Shop", 31, "Red Mug");
매개 변수의 순서를 기억하지 못하지만 해당 이름을 알고 있는 경우 임의의 순서로 인자를 보낼 수 있다.
PrintOrderDetails(orderNum: 31, productName: "Red Mug", sellerName: "Gift Shop");
PrintOrderDetails(productName: "Red Mug", sellerName: "Gift Shop", orderNum: 31);
또한 명명된 인자는 각 인자가 무엇을 나타내는지를 식별하여 코드의 가독성을 향상시킨다.
선택적 인자(Optical Arguments)
메서드, 생성자, 인덱서, 또는 대리자의 정의에서 해당 매개 변수를 필수 또는 선택사항으로 지정할 수 있다.
호출 시 모든 필수 매개 변수에 대한 인자를 제공해야 하지만 선택적 매개 변수에 대한 인자는 생략할 수 있다.
각 선택적 매개 변수에는 해당 정의의 일부로 기본값이 있다. 해당 매개 변수에 대한 인자가 전달되지 않은 경우 이를 기본값으로 사용한다. 기본값은 다음 유형의 식 중 하나여야 한다.
- 상수식
- new ValType() 형태의 식
- default(ValType) 형태의 식
선택적 매개 변수는 모든 필수 매개 변수 다음인 매개 변수 목록의 끝에서 정의된다. 호출자가 연속된 선택적 매개 변수 중 하나에 대한 인자를 제공하는 경우 이전의 모든 선택적 매개 변수에 대한 인자를 제공해야 한다.
public void ExampleMethod(int required, string optionalstr = "default string", int optionalint = 10)
//anExample.ExampleMethod(3, ,4); //2번째 인자가 전달되지 않아서 에러
anExample.ExampleMethod(3, optionalint: 4); //명명된 인자로 전달하면 문제가 없다.
예제 코드
'프로그래밍 > C#' 카테고리의 다른 글
읽기 / 쓰기 프로퍼티(Property) 선언 및 사용 방법 (54) | 2023.05.31 |
---|---|
C# nameof Expression (22) | 2023.05.26 |
C# 스레딩 (25) | 2023.05.24 |
C# 컬렉션 - System.Collections.Hashtable (10) | 2023.05.23 |
C# 컬렉션 - System.Collections.ArrayList (4) | 2023.05.22 |
댓글