더북(TheBook)

메서드의 매개변수 전달 방식 세 가지 비교하기

메서드의 매개변수 전달 방식으로 사용하는 세 가지 방식을 예제 단위로 비교해서 설명하겠습니다.

 

값 전달 방식

첫 번째로 매개변수 전달 방식의 거의 대부분으로 사용하는 값 전달 방식을 정리하겠습니다. 다음 내용을 입력한 후 실행해 보세요.

> int num = 10;
> Console.WriteLine($"[1] {num}"); //①
[1] 10
>
> static void Do(int num)          //②
. {
.     num = 20;
.     Console.WriteLine($"[2] {num}");
. }
>
> Do(num);
[2] 20
> Console.WriteLine($"[3] {num}"); //③
[3] 10

에서는 Main() 메서드의 지역 변수인 num10을 그대로 출력합니다.

에서는 Main() 메서드에서 전달된 num 값인 10Do 메서드의 num 매개변수에 저장되고, num 매개변수 값에 20을 대입하여 변경한 후 20을 출력합니다. 여기에서 20Do 메서드에서만 변경되고, Main() 메서드의 num 변수에는 영향을 주지 않습니다.

이 실행될 때 numMain() 메서드의 지역 변수이기에 10인 상태 그대로 출력됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.