메서드의 매개변수 전달 방식 세 가지 비교하기
메서드의 매개변수 전달 방식으로 사용하는 세 가지 방식을 예제 단위로 비교해서 설명하겠습니다.
값 전달 방식
첫 번째로 매개변수 전달 방식의 거의 대부분으로 사용하는 값 전달 방식을 정리하겠습니다. 다음 내용을 입력한 후 실행해 보세요.
> 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() 메서드의 지역 변수인 num 값 10을 그대로 출력합니다.
②에서는 Main() 메서드에서 전달된 num 값인 10이 Do 메서드의 num 매개변수에 저장되고, num 매개변수 값에 20을 대입하여 변경한 후 20을 출력합니다. 여기에서 20은 Do 메서드에서만 변경되고, Main() 메서드의 num 변수에는 영향을 주지 않습니다.
③이 실행될 때 num은 Main() 메서드의 지역 변수이기에 10인 상태 그대로 출력됩니다.