C# 기초 : 가변길이 매개 변수 , 명명된 매개 변수




C++를 하다가 넘어 왔는데, 다른 부분이 조금씩 보이기 시작

가변길이 매개 변수에 대해 먼저 알아보도록 하자.




1. 가변길이 매개 변수

함수를 오버로딩하는 과정에서

똑같은 타입인데 매개변수의 '수'가

다르다는 이유만으로 오버로딩을 했다.

C#은 가변길이 매개 변수를 제공하여

그 개수가 유연하게 변할 수 있게 한다.




int total = 0;


total = Sum( 1, 2, 3);

total = Sum( 1, 2, 3, 4, 5);

total = Sum( 1, 2, 3, 4, 5, 6, 7, 8);


위와 같이 매개 변수의 수가 정해져 있지 않다면

(똑같은 타입일 경우에만) 그 만큼 함수를 오버로딩해서

사용하는 것이 아니라 가변길이 매개 변수를 사용한다.




가변길이 매개 변수는 params 키워드와 배열을 이용해서 선언.


int Sum ( params int[] args ){


int sum = 0;


for( int i = 0; i<args.Length; i++){

sum += args[i];

}


return sum;

}


==> 형식은 같으나 매개 변수의 개수만 유연하게 달라질 경우에 적합하다.




2. 명명된 매개 변수


메소드를 호출할 때 매개 변수 목록 중 어느 매개 변수에 데이터를

할당할 것인지를 지정하는 것은 '순서'이다. 명명된 매개 변수는

순서가아닌 매개 변수의 이름에 근거해서 데이터를 할당한다.




static void Print( string name , int phone ){ ... }


static void Main(string[] args){

Print ( name : "홍길동" , phone : "2222" );

Print ("김사랑" , "11111" );

Print ( phone : "3333" , name : "한고은" );

}




다소 번거로워 보일 수도 있지만, 매개 변수의 수가 많은 경우

가독성을 높여줄 수 있다. 또한 디폴드 매개 변수가 많은 경우에도

가독성이 상당히 안좋아질 수가 있는데, 명명된 매개 변수를

사용할 경우 이 문제를 해결할 수 있다.









+ Recent posts