정의
값 타입(value type) 의 변수들을 참조 타입(reference type) 처럼 동작하도록 허용하는 키워드
의의
함수에 값 타입 변수 A를 매개변수로 전달할 경우 함수 내부에서 A의 값을 변형시켜도 원본은 유지됩니다. 함수에 참조 타입 변수 B를 매개변수로 전달할 경우 함수 내부에서 B의 값을 변형시키면 같은 저장 공간을 참조하는 원본에도 반영됩니다.
즉, 다음과 같은 기능을 수행하기 위해 사용됩니다.
- 매개변수로 전달한 함수 내부에서 원본 변수를 변형시킬 수 있습니다.
- 매개변수로 전달한 함수는 해당 변수에게 대입하려는 값을 반환할 필요가 없습니다.
기능
기본 형식 - ref
일반 변수 앞에 ref 키워드를 추가하면 ref 변수로 동작합니다. ref 변수에는 반드시 ref 변수를 대입해야 합니다. var1 과 var2 는 값 타입 변수입니다.
#1 ref 기본 형식 - 초기화
ref datatype var1 = ref var2;
함수 선언 시 ref 변수를 매개변수로 지정할 수 있습니다. 이 때 ref 매개변수에는 반드시 ref 변수가 전달되어야 합니다.
#2 ref 기본 형식 - 함수의 매개변수
void RefMethod( ref int var1, ref int var2, ··· )
{
// Code
}
매개변수로 넘겨 받은 ref 변수는 메서드 안에서 사용하지 않아도 됩니다. (유연함)
기본 형식 - out
함수 선언 시 out 변수를 매개변수로 지정할 수 있습니다. 이 때 out 매개변수에는 반드시 out 변수가 전달되어야 합니다. ref 와 달리 일반 변수를 out 형식의 일반 변수로 선언할 수 없습니다.
out 기본 형식 - 함수의 매개변수
void OutMethod( out int var1, out int var2, ··· )
{
// Code includes var1, var2, ···
}
매개변수로 넘겨 받은 out 변수는 메서드 안에서 반드시 사용해야 합니다. (엄격함)
'📘프로그래밍 > C#' 카테고리의 다른 글
[C#] 12 네임스페이스 (0) | 2024.11.02 |
---|---|
[C#] 11 정적 멤버 (1) | 2024.11.02 |
[C#] 09 생성자 / 소멸자 (2) | 2024.10.31 |
[C#] 08 클래스 (1) | 2024.10.30 |
[C#] 07 구조체 (0) | 2024.10.29 |