C# 문법 3주차 - out, ref 키워드

Amberjack·2024년 1월 2일
0

C# 문법

목록 보기
20/44

🪧 out, ref 사용법

값 형식의 변수를 참조 형식처럼 값을 변경해줄 때 사용할 수 있다.

👉 사용법

  • out, ref 키워드는 메서드에서 매개변수를 전달할 때 사용한다.
  • out 키워드는 메서드에서 반환 값을 매개변수로 전달하는 경우에 사용한다.
  • ref 키워드는 메서드에서 매개변수를 수정하여 원래 값에 영향을 주는 경우에 사용한다.
  • out, ref 키워드는 메서드에서 값을 반환하는 것이 아니라 매개변수를 이용하여 값을 전달할 수 있다.

예시)

// out 키워드 사용 예시
// Divide()를 진행하기 위해 받은 매개변수의 값을 변경하고 반환한다.
void Divide(int a, int b, out int quotient, out int remainder)
{
    quotient = a / b;
    remainder = a % b;
}

int quotient, remainder;
Divide(7, 3, out quotient, out remainder);
Console.WriteLine($"{quotient}, {remainder}"); // 출력 결과: 2, 1

// ref 키워드 사용 예시
// Swap()을 진행하기 위해 받은 매개변수 값을 변경한다.
void Swap(ref int a, ref int b)
{
    int temp = a;
    a = b;
    b = temp;
}

int x = 1, y = 2;
Swap(ref x, ref y);
Console.WriteLine($"{x}, {y}"); // 출력 결과: 2, 1

⚠️ 주의 사항!

  • 값의 변경 가능성 :

    ref 매개변수를 사용하면 메서드 내에서 해당 변수의 값을 직접 변경할 수 있다. 이는 예기치 않은 동작을 초래할 수도 있으므로 주의해야 한다.
  • 성능 이슈 :

    ref 매개변수는 값에 대한 복사 없이 메서드 내에서 직접 접근할 수 있기 때문에 성능상 이점이 있으나, 너무 많은 매개변수를 ref로 전달하면 가독성이 떨어지고 유지보수가 어려워질 수 있다.
  • 변수 변경 여부 주의 :

    out 매개변수는 메서드 내에서 반드시 값을 할당해야 한다. 따라서 out 매개변수를 전달할 때 해당 변수의 이전 값이 유지되지 않으므로 주의해야 한다.

0개의 댓글