본문 바로가기

C# ref vs out (Pass by Reference)

@코야딩구2025. 6. 11. 15:24

1. ref vs out : 공통점

 - 전달 방식: 값이 아니라 변수의 참조를 전달함 (Call by Reference)

 - 값 변경: 함수 내부에서 값을 변경하면, 호출한 쪽 변수에도 반영됨

 - 사용 목적: 메서드(함수)에서 원래 값을 수정하거나 반환하고 싶을 때 사용

2. ret vs out : 차이점

항목 ref out
호출 전 초기화 여부 반드시 초기화되어야 함 최기화되어 있지 않아도 됨
메서드 내에서의 동작 값을 읽고/쓰기 가능 값을 반드시 할당(쓰기) 해야 함
주 사용 목적 값을 전달하고 내부에서 수정 값을 메서드를 통해 반환받기 용도

3. ref 예제 코드

void Increment(ref int number)
{
    number++;
}

int value = 5;
Increment(ref value);
Console.WriteLine(value); // 6

3. Out 예제 코드

void GetValues(out int x, out int y)
{
    x = 10;
    y = 20;
}

int a, b;
GetValues(out a, out b);
Console.WriteLine($"a: {a}, b: {b}"); // a: 10, b: 20

'Programming > C#' 카테고리의 다른 글

C# 박싱과 언박싱  (0) 2025.07.07
C# 문자열  (0) 2025.06.17
C# is와 as (Type Checking and Casting)  (0) 2025.06.11
C# Convert, Parse와 TryParse  (0) 2025.06.10
C# 문법 기초 - C++과 다른 점  (5) 2025.06.09
목차