본문 바로가기
C#

[C#] ref와 out, in의 차이점

728x90
반응형

일단 공통점부터 말하자면 셋다 변수 참조 기능을 제공해주는 키워드입니다. C++의 &참조와 같다고 보셔도 무방합니다. 다만 기능에서 약간의 차이점이 있기 때문에 알아두시면 좋습니다.

 

ref의 특징

    - ref 참조 변수를 넘겨주기 전에 해당 변수는 반드시 초기화 되어야합니다.

    - 메소드or함수내에서 초기화가 되지 않아도 됩니다.

    - 데이터가 양방향으로 전달될 수 있습니다.

    - 조건부에 따라 변수값을 바꿔줘야할 때 유용합니다.

 

out의 특징

    - 메소드or함수내에서 최소 1번은 반드시 초기화 되어야 합니다.

    - 변수를 메소드or함수로 건내줄 때 초기화되지 않은 상태로 넘겨줄 수 있습니다.

    - 데이터의 단방향 전송을 지향합니다.

    - 함수의 return값이 여러개일 때 유용합니다.

 

in의 특징

    - 매개변수가 따로 할당되지 않고 참조하기 때문에 메모리 낭비가 적습니다.

    - 참조변수가 수정되지 않기 때문에 원본 데이터를 안전하게 지킬 수 있습니다.

    - in 키워드는 매개변수를 읽기 전용으로 넘겨줄때 사용됩니다.

    

반응형