1. ref와 out 키워드의 대한 개념
C#에서는 ref 및 out 키워드를 사용하여 매개변수를 값 대신 참조로 전달할 수 있습니다. 매개변수를 값으로 전달하면 매개변수 값의 복사본이 메서드 또는 함수에 전달됩니다. 메서드 또는 함수 내에서 매개변수 값을 변경해도 메서드 또는 함수 외부의 매개변수 원래 값에는 영향을 미치지 않습니다.
2. ref와 out 키워드의 차이점
반대로, 매개변수가 ref 키워드를 사용하여 참조로 전달되면 메서드 또는 함수는 매개변수의 원래 값에 대한 참조를 받습니다. 즉, 메서드 또는 함수 내에서 매개변수 값에 대한 변경 사항은 메서드 또는 함수 외부의 매개변수 원래 값에 반영됩니다.
out 키워드는 ref 키워드와 유사하지만 메서드나 함수가 여러 값을 반환해야 할 때 사용됩니다. 이 경우 out 키워드는 매개변수를 출력 매개변수로 취급해야 하며 해당 값은 메서드 또는 함수에 의해 설정됨을 나타내는 데 사용됩니다.
3. ref와 out 키워드의 예제
// Example using the ref keyword
void Increment(ref int value)
{
value++;
}
int x = 5;
Increment(ref x);
Console.WriteLine(x); // Output: 6
// Example using the out keyword
void GetValues(out int x, out int y)
{
x = 5;
y = 10;
}
int a, b;
GetValues(out a, out b);
Console.WriteLine(a); // Output: 5
Console.WriteLine(b); // Output: 10
위 예제는 C#에서 ref 및 out 키워드를 사용하는 방법의 예입니다:
첫 번째 예제에서 증분 메서드는 ref 키워드를 사용하여 참조로 정수 매개변수를 받습니다. 매개변수의 값은 메서드 내에서 증가되고, 업데이트된 값은 메서드 외부의 원래 변수에 반영됩니다.
두 번째 예제에서 GetValues 메서드는 out 키워드를 사용하여 두 개의 정수 매개 변수를 출력 매개 변수로 사용합니다. 이 메서드는 메서드 내에서 이러한 매개변수의 값을 설정하고 업데이트된 값은 호출 코드에 반환됩니다.
'공부 > C#' 카테고리의 다른 글
C#에서 Dictionary는 맵일까?, 해쉬 맵일까? (0) | 2023.03.05 |
---|---|
컬렉션(Collection)의 종류 (0) | 2023.03.05 |
모노비헤이비어(MonoBehavior)란? (0) | 2023.03.05 |
C#의 구조체(struct)는 가비지 컬렉터의 대상인가요? (0) | 2023.03.05 |
가비지 컬렉션이란? (2) | 2023.03.05 |