C#, 자료구조

ref 와 out

MuscleDeveloper5683 2025. 4. 24. 20:19
728x90
SMALL

 

ref와 out은 둘 다 값을 참조 형태로 전달하기 위해 사용되는 키워드지만, 용도와 사용 방식에 차이점이 있다. 

 

ref란?

ref 키워드는 메서드에 변수를 참조로 전달할 때 사용된다. 이를 통해 메서드 내에서 변수의 값을 변경할 수 있으며, 변경된 값이 반영된다. ref를 사용할 때는 변수가 메서드 호출 전에 초기화되어 있어야 한다.

 

 

 

이처럼 변수를 초기화 안시키고 사용하면 컴파일 중에 오류가 난다.

 

 

 

왜 오류가 날까?

ref를 통해 참조된 변수가 메서드 내에서 미리 정의된 값에 의존할 수 있기 때문이다. 

 

out이란?

out 키워드도 메서드에 변수를 참조로 전달할 때 사용되지만, out을 사용할 때는 변수를 메서드 호출 전에 초기화할 필요가 없다. 대신, 메서드 내에서 반드시 변수를 초기화해야 한다.

 

 

 

 

구분 ref out
목적 변수의 값을 메서드 안에서 읽고 수정 메서드에서 새 값을 할당해서 반환
초기화 여부 메서드 호출 전 반드시 초기화되어 있어야 함 메서드 내부에서 반드시 값을 할당해야 함
메서드 내부 동작 값을 읽을 수 있고, 수정 가능 초기 값을 읽지 못하고, 새 값으로 반드시 대체
주 용도 값을 전달하고 수정한 결과를 받고 싶을 때 값을 여러 개 반환하고 싶을 때 대체로 사용

 

 

즉 아래처럼 기억하면 쉽다.

 

  • ref: 기존 값을 넘기고, 바꿔서 받아오기
  • out: 새 값을 받아오기 위한 빈 그릇

 

728x90