본문으로 바로가기

참조 전달 방식 : 실제 데이터는 매개변수가 선언된 쪽에서만 저장하고, 호출된 메서드에서는 참조만 하는 형태로 변수이름만 전달하는 방식

반환형 전달 방식 : 메서드를 호출하는 쪽에서 선언만 하고, 초기화하지 않고 전달하면 메서드 쪽에서 해당 데이터를 초기화해서 넘겨주는 방식

DoRef : 참조 / DoOut : 반환형

 

둘은 얼핏보기에 정말 비슷해보인다

> 하지만 이 중 참조 전달 방식은 ref 키워드를 사용하며,

메서드 호출 전에 반드시 변수를 초기화해야 한다.

(값이 할당되지않아서 참조도 불가능한듯)

그후 초기화된 값을 메서드 내에서 변경하여 호출한 쪽에 반영하는데 사용된다.

 

> 그에 반해 반환형 전달 방식은 out 키워드를 사용하며, 

메서드에서 값을 반환하면서 동시에 초기화하여 사용된다.  

 

그렇기 때문에 방식의 선택기준은 이렇게 나뉜다.

양방향 전달이 필요한 경우: ref 사용

출력 매개변수를 사용하여 초기화가 필요 없는 경우: out 사용

 

너무 비슷해서 헷갈리는데 여러번 쓰며 경험이 쌓여야 적절한 상황에 선택이 가능할 것 같다!

매번 return말고 다른 방법도 있을거라,

서로 타입이 다른 값을 반환하는 방법이 있을거라 생각했는데

드디어 알게 되었다😃

여러가지로 활용하기에 정말 간편한 방법인거 같다!!