취준/기술면접

ref와 out (C#)

빵어 2024. 1. 17. 21:18

ref

C# 에서는 기본적으로 함수에 인자를 전달할 때 값 전달을 한다.

ref를 사용하면 참조 전달이 가능하다.

 

사용하려면 변수의 초기화가 반드시 선행되어야 한다.

// 사용 예시
private void Example(ref int num) {...}

int n = 0;
Example(ref n);

 

 

out

ref와 마찬가지로 변수를 참조 형태로 전달하는 데에 사용된다.

 

ref와 다른 점은 초기화가 반드시 선행되어야 할 필요는 없다는 점과

전달 받은 메서드 안에서는 반드시 할당되어야 한다는 점이다.

 

메서드 안에서는 반드시 할당되어야 한다는 점 때문에 프로그래머의 실수를 방지해준다.

// 사용 예시
private void Example(out int num)
{
	num = 10;
}

int n;
Example(out n);

 

 

 

ref와 out의 차이점 요약

ref 키워드를 사용한 변수는 초기화가 반드시 선행되어야 하는 반면,

out 키워드를 사용한 변수는 초기화가 반드시 선행될 필요는 없다.

다만, out 키워드를 사용해 변수를 전달 받은 메서드 내에서는 반드시 값을 할당해야 한다.