• Home
  • About
    • KKsDev photo

      KKsDev

      게임 프로그래머를 목표로 Unity, C#을 공부하고 있습니다.

    • Learn More
    • Email
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

내일배움캠프 59일차 TIL 'ref'와 'out'의 사용 시 차이

25 Oct 2023

Reading time ~1 minute

오늘 배운 내용

  1. ‘ref’와 ‘out’의 사용 시 차이



nbcbanner

기술 면접 예상 질문 - ‘ref’와 ‘out’의 사용 시 차이는 무엇인가요?

먼저 ref와 out키보드는 메서드 호출시 매개변수를 참조로 넘겨주는 키워드 입니다.

ref 키워드로 전달할 매개변수는 반드시 초기화 되어야 하고, 메서드 내부에서 해당 참조를 읽고 쓸수 있습니다.

전달된 매개변수를 메서드 내에서 변경해야 할 때 사용합니다.

out 키워드로 전달할 매개변수는 초기화 되어있지 않아도 되고, 매서드 내부에서 해당 참조를 읽기전, 메서드 종료전 반드시 초기화 해주어야 합니다.

메서드가 여러 값을 반환해야 할 때 사용합니다.

+

추가적으로 이번에 알게 된 사실인데

ref와 out 키워드를 값 타입이 아닌 참조 타입에도 사용할 수 있다고 한다.

먼저 참조 타입의 값들은 아래와 같이 생성될텐데

MyClass mc = new MyClass();

new MyClass()는 힙 메모리 상에 객체를 생성한다.

mc는 MyClass 타입의 참조 변수로 힙 메모리 상에 생성된 객체의 주소를 가르킨다.

일반적으로 참조타입을 매개변수로 넘길때 힙 메모리 상에 생성된 해당 객체의 주소가 매개변수로 넘어간다.

그런데 ref,out 키워드를 사용하면 참조 변수 mc를 넘겨줄 수 있다.

즉 포인터 변수와 유사한 기능을 제공한다.



nbcthumbnail



TIL내일배움캠프스파르타기술면접 Share Tweet +1