ref와 out 한정자는 C#에서 메서드 매개변수를 참조로 전달하는 데 사용되며, 둘 다 변수의 주소를 전달하여 해당 변수의 값을 직접 수정할 수 있게 한다. 하지만 쓰임에 차이가 있다는 점!
ref 한정자
- `ref`로 전달된 매개변수는 메서드 호출 전에 초기화되어야 한다.
- 즉, `ref`는 이미 할당된 변수를 전달하고 해당 변수의 값을 수정할 수 있게 한다.
out 한정자
- `out`로 전달된 매개변수는 메서드 호출 전에 초기화될 필요가 없다.
- 그러나 해당 메서드 내에서 해당 매개변수는 반드시 초기화되어야 한다.
- 즉, `out`은 변수의 초기 값을 전달하지 않고 해당 변수를 메서드 내에서 할당하게 한다.
public void RefExample(ref int number)
{
number = number + 10;
}
public void OutExample(out int number)
{
number = 20; // 반드시 이 메서드 내에서 초기화해야 함
}
// 사용 방법
int a = 10, b;
RefExample(ref a); // a == 20
OutExample(out b); // b == 20
- `out` 매개변수는 메서드 내에서 반드시 값을 할당해야 함 -> 할당하지 않으면 컴파일 오류 발생
- `ref` 매개변수는 초기화된 값을 가지고 있기 때문에 메서드 내에서 값을 할당하지 않아도 되지만, 메서드를 호출하기 전에 변수가 초기화되어야 한다.
'👾 내일배움캠프 > 🎮 TIL & WIL' 카테고리의 다른 글
내일배움캠프 54일차 TIL - struct와 class (0) | 2023.10.29 |
---|---|
내일배움캠프 53일차 TIL - 접근제한자에 대한 이해 (0) | 2023.10.26 |
내일배움캠프 51일차 TIL - Float과 Int (0) | 2023.10.24 |
내일배움캠프 50일차 TIL - WBS란? (협업 준비하기) (0) | 2023.10.24 |
내일배움캠프 48일차 TIL - 팀 과제 (1) | 2023.10.22 |