게임 개발_HISTORY
C# STUDY_TIL251009 [out, ref 키워드] 본문
📝 학습 요약
- out, ref 키워드
🧩 학습 내용
✔️ out, ref 키워드
메서드가 매개변수를 통해 값을 돌려주는 방법을 제어할 때 사용한다. 즉, 메서드가 리턴값 외에도 여러 개의 값을 반환할 수 있게 해주는 기능이다.
▫️ref 키워드
변수를 참조로 전달해서, 메서드 안에서 수정하면 원본 변수도 함께 바뀐다.
매서드 안에서 인자의 값을 바꾸면 밖에서도 바뀐 상태가 그대로 유지된다.
void AddTen(ref int number)
{
number += 10;
}
int value = 5;
AddTen(ref value); // ref를 반드시 같이 써야 함
Console.WriteLine(value); // 출력: 15
value가 메서드에 참조로 전달되므로 number를 바꾸면 value도 바뀐다. 그리고 호출 시에도 ref를 붙여야 한다.
▫️out 키워드
메서드가 추가적인 결과값을 돌려줄 때 사용한다. 보통 리턴값 외에 "추가 결과"를 전달할 때 쓴다.
bool Divide(int a, int b, out int result)
{
if (b == 0)
{
result = 0;
return false; // 실패
}
result = a / b;
return true; // 성공
}
int answer;
if (Divide(10, 2, out answer))
{
Console.WriteLine($"결과: {answer}"); // 결과: 5
}
else
{
Console.WriteLine("0으로 나눌 수 없습니다.");
}
result는 out 파라미터로, 함수 내부에서 반드시 값을 설정해야한다. 그리고 호출시 초기값이 없어도 된다.
Divide는 리턴값(true/false)과 out으로 넘긴 값(result) 두가지 결과를 동시에 반환해야한다.
| 구분 | ref | out |
| 초기화 필요 여부 | 반드시 초기화 후 전달 | 초기화 없이 전달 가능 |
| 메서드 내부에서 값 할당 | 선택적 | 반드시 해야 함 |
| 주 용도 | 값을 수정할 때 | 값을 반환할 때 |
| 예시 상황 | 함수 안에서 값 변경 | 여러 개의 결과 반환 |
'Development In Unity > Study : C#' 카테고리의 다른 글
| C# STUDY_TIL251008 [클래스 기초 문제 풀이, 제너릭] (0) | 2025.10.08 |
|---|---|
| C# STUDY_TIL251007 [클래스와 객체] (0) | 2025.10.07 |
| C# STUDY_TIL251006 [숫자 맞추기 게임, 틱텍토 게임 구현] (0) | 2025.10.06 |
| C# STUDY_TIL251005 [메서드] (0) | 2025.10.05 |
| C# STUDY_TIL251004 [배열과 컬렉션] (0) | 2025.10.04 |
