면접질문

기술면접 - 'ref'와 'out'의 사용 시 차이는 무엇인가요?

작성자 정보

  • 마스터 작성
  • 작성일

컨텐츠 정보

본문

Q - 'ref'와 'out'의 사용 시 차이는 무엇인가요?

A - ref와 out둘다 변수를 참조형태로 전달하는데 사용합니다. 

ref는 변수가 메서드 안에서 변경이 가능합니다. 단 전달하기 전에 초기화 해야됩니다.

out은 변수를 초기화 하지 않아도 되지만 메서드 안에서 반드시 할당 해야 합니다.


 

Ref 사용예

int var = 1;

RefFunction(ref var);


public static void RefFunction(ref int i)

{

        i = 10;

}

변수 사용전에 초기화를 해줘야 한다.

int var = 1;

메서드 내에서 값 변경이 가능합니다.

i = 10; (값 변경)

 

Out 사용예

int var;

OutFunction(out var);


public static void OutFunction(out int i)

{

        i = 10;

}

변수 사용전에 초기화 안해도 됩니다.

int var;

메서드 내에서 반드시 할당 해야 합니다.

i = 10; (값 할당)

 

 

[GPT]

C#에서 ref와 out 키워드의 가장 큰 차이점은 초기화와 관련된 것입니다.

 

ref : 

ref를 사용하려면 변수가 반드시 초기화되어야 합니다. 이 키워드를 사용하면 메서드에 변수의 참조를 전달하고, 메서드 내에서 이 변수를 변경할 수 있습니다. 이렇게 하면 메서드가 종료된 후에도 변수의 값이 변경된 상태를 유지하게 됩니다.

 

out: 

out드의 경우, 변수의 초기화가 필요하지 않습니다. 이 키워드를 사용하면 메서드 내에서 반드시 해당 변수를 초기화하고 값을 할당해야 합니다. out을 사용하면 여러 값을 반환하는 것이 가능해집니다.

 

따라서 ref와 out의 선택은 주로 변수의 초기화와 관련된 요구사항에 따라 결정됩니다. 

관련자료

댓글 0
등록된 댓글이 없습니다.
알림 0