TIL 25.02.04 - out, ref 키워드

강진규·2025년 2월 4일

Today I Learned

목록 보기
5/34
post-thumbnail

[ out, ref 키워드 ]

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

[ out ]

static void Divide(int a, int b, out int i, out int j)
{
    i = a / b;
    j = a % b;
}
static void Main(string[] args)
{
  int i, j;
  Divide(7, 3, out i, out j);
  Console.WriteLine($"7 / 3 = {i}\n7 % 3 = {j}");
}

Divide 메서드에서 out을 사용하여 i, j의 반환값을 매개변수로 전달해주었고,
Console.WriteLine()을 통해 출력해보면 정상적으로 값이 출력된다.


[ ref ]

static void Swap(ref int a, ref int b)
{
    int temp = a;
    a = b;
    b = temp;
}

static void Main(string[] args)
{
    int x = 1;
	int y = 2;
    
    Swap(ref x, ref y);
    Console.WriteLine($"바꾸기 전 : x = 1 , y = 2\n바꾸기 후 : x = {x} , y = {y}");
}

Swap메서드는 a와 b의 값을 바꿔주는 메서드이다. 매개변수의 값을 수정하는 경우이기 때문에
ref를 사용하여서 매개변수를 전달해주었다.
출력해보면 역시 int x 와 y의 값이 바뀌어 출력된다.


오늘도 개인 과제를 하느라 거의 시간을 다썻다.
중간 중간에 강의 자료들을 보면서 참고했는데,
강의를 들을때는 이 키워드들을 그냥 넘겨들었는데,
다시 보니까 과제에 쓸 수도 있을 것 같아서 다시 정리해보았다.

0개의 댓글