본문 바로가기
프로그래머/코딩(C#)개념정리

C#_클래스_선택적 인수와 명명된 인수

by FourthWay 2023. 3. 21.
728x90
반응형

*메소드의 인수에 기본값을 설정하거나 메소드 호출 시에 인수의 이름을 지정할 수 있다.

선택적 인수의 설정과 호출

선택적 인수 기능을 사용하면, 메소드의 인수에 기본값을 설정할 수 있다.

 

*메소드의정의

double CalcCircle(int rad = 1, double pi = 3.14)

{

   return rad*rad*pi;

}

*색깔 친 두 부분이 선택적 인수이다.(기본값을 설정한다)

 

선택적 인수를 생략하고 호출할 수 있다.

 

*호출

void Output()

{

  double area;

  area = CalcCircle();                       <-- CalcCircle(1, 3.14); 와 같다.

  area = CalcCircle(10);                   <-- CalcCircle(10, 3.14); 와 같다.

  area = CalcCircle(20, 3.14159);    <-- CalcCircle(20, 3.14159)와 같다.

...

 

**대부분 매번 같은 값을 취하지만, 가끔 변경하고 싶을 때 선택적 인수를 사용하면 편리하다.

 

 

*설정할 때 주의사항

선택적 인수를 이용할 때, 기본값을 모든 인수에 설정할 필요는 없다.

double CalcCircle(int rad, double pi = 3.14)  // (색깔 친부분) 두 번째 인수에만 기본값을 설정

...

 

하지만, 첫 번째 인수에만 기본갑슬 설정할 수는 없다. 인수에 기본값을 설정할 때는

맨 끝에서부터 차례로 설정해야 한다.

double CalcCircle(int rad = 1, double pi)    //컴파일 에러가 난다.

(색깔 친부분) 마지막인수를 건너뛰고 기본값을 설정함

-인수의 형을 바꾸거나 메소드 내의 처리를 바꾸고 싶을 때는 오버로드를 사용해야 한다.

 

 

 

망명된 인수

메소드를 호출할 때 인수의 이름을 붙여서 호출할 수 있다. 예를 들어 왼쪽 페이지의 CalcCircle메소드를 호출할 경우,

인수의 변수명 뒤에 : 를 붙여서 다음과 같이 지정한다.

 

void Output()

{
 double area;

 area = CalcCircle(pi : 3.14159);  // 특정 인수만 지정할 수 있다. /  CalcCircle(1, 3.14159);와 같다.

 area = CalcCircle(pi : 3.14159, rad:20); // 인수의 순서를 바꿀 수 있다. / CalcCircle(20, 3.14159); 와 같다.

...

 

728x90
반응형

'프로그래머 > 코딩(C#)개념정리' 카테고리의 다른 글

C#_클래스_생성자  (2) 2023.03.24
C#_클래스_public과 private  (6) 2023.03.23
C#_클래스_오버로드  (4) 2023.03.21
C#_클래스_메소드의 호출_3  (2) 2023.03.12
C#_클래스_메소드의 호출_2  (22) 2023.03.06