참조 전달 방식 : 실제 데이터는 매개변수가 선언된 쪽에서만 저장하고, 호출된 메서드에서는 참조만 하는 형태로 변수이름만 전달하는 방식
반환형 전달 방식 : 메서드를 호출하는 쪽에서 선언만 하고, 초기화하지 않고 전달하면 메서드 쪽에서 해당 데이터를 초기화해서 넘겨주는 방식
둘은 얼핏보기에 정말 비슷해보인다
> 하지만 이 중 참조 전달 방식은 ref 키워드를 사용하며,
메서드 호출 전에 반드시 변수를 초기화해야 한다.
(값이 할당되지않아서 참조도 불가능한듯)
그후 초기화된 값을 메서드 내에서 변경하여 호출한 쪽에 반영하는데 사용된다.
> 그에 반해 반환형 전달 방식은 out 키워드를 사용하며,
메서드에서 값을 반환하면서 동시에 초기화하여 사용된다.
그렇기 때문에 방식의 선택기준은 이렇게 나뉜다.
양방향 전달이 필요한 경우: ref 사용
출력 매개변수를 사용하여 초기화가 필요 없는 경우: out 사용
너무 비슷해서 헷갈리는데 여러번 쓰며 경험이 쌓여야 적절한 상황에 선택이 가능할 것 같다!
매번 return말고 다른 방법도 있을거라,
서로 타입이 다른 값을 반환하는 방법이 있을거라 생각했는데
드디어 알게 되었다😃
여러가지로 활용하기에 정말 간편한 방법인거 같다!!
'Game Development > c#' 카테고리의 다른 글
C#/Unity 메모 (0) | 2023.12.20 |
---|---|
ToString() 오버라이딩 (0) | 2023.12.20 |
[상속] 다형성 : new가 아닌 override로 메서드를 재정의하는 이유 (0) | 2023.12.19 |
메서드 체이닝과 쿼리 구문 (0) | 2023.12.15 |
괄호는 먼저 실행된다 (0) | 2023.12.14 |