2024년 05월 10일 금요일 개발일지 / out과 ref 키워드에 대해서

2024. 5. 10. 21:13나의 개발자 기록/본 캠프 개발 일지

2024년 5월 10일 금요일


마저 못한 C# 공부를!

 

다음 주 화요일 까지는 개인 프로젝트 제출에 힘을 써야 하기 때문에 다른 조원분들하고는 인사만 하고 각자 강의를 듣거나 공부를 하게 되었습니다. 저는 어차피 주말에도 공부를 하고, 강의를 듣고, 과제도 빠르게 진행할 생각이라서 부족하다고 생각했던 C# 공부를 더욱 눈에 익숙하게 끔 코드에도 내용을 써가면서 공부를 했습니다.

 

 

오전에는 3주 차의 내용이었던 클래스와 객체, 상속과 다형성, 고급 문법 및 기능을 공부했고, 오후에는 인터페이스와 열거형, 예외 처리 및 값형과 참조형, 델리게이트 및 람다, LINQ, 고급 자료형 및 기능을 공부했으며, 마지막으로 저녁을 먹고 난 뒤의 남은 시간에는 알고리즘에 대해서 공부도 하고, 정렬 알고리즘에 대한 내용까지 공부를 했습니다. 배웠던 내용을 복습하기도 하고 새로운 내용을 이 해면서 진행을 했는데, 많은 내용을 머릿속에 집어넣으려고 하니까 눈도 침침하고 머리도 아프더군요... 특히 알고리즘에 대한 내용도 많이 어려운 것 같습니다. 몇 개는 이해가 되는 것 같으면서도 하나도 이해가 안 되는 그런 느낌이라... 문제가 많네요.

 

C# 공부 더 할려고 책도 샀습니다!

 

오늘은 어제 매개변수의 연장선상이자 제가 제대로 몰랐었던 out과 ref 키워드에 대해서 간단하게나마 적어볼까 합니다. out이나 ref 키워드들도 매개변수와 관련이 있다 보니 여러 가지 의미로 많이 어려운 것 같습니다. 공부를 더 해도 뭔가 많이 헷갈리네요. 내일은 일단 오전에 알고리즘에 대해서 다 공부하고 C#에 대한 공부를 잠깐 마무리할 예정이고, 오후에는 새로 지급받은 Unity 게임 개발 입문 강의를 정독하고 복습하면서 진행할 생각입니다. 제가 노베이스인만큼 이제 진짜로 주말에는 노는 건 최대한 자제하고, 공부와 복습 위주로 시간을 써야 할 것 같습니다. 예비군이나 다른 일 때문에 따라가는데 시간을 많이 놓친 만큼, 쉬는 시간을 좀 더 투자해서 내배캠 커리큘럼에 잘 따라갈 수 있도록 노력하겠습니다! 


out과 ref 키워드에 대해서

out, ref 키워드의 사용법

 

- out과 ref 키워드는 기본적으로 메서드에서 매개변수를 전달할 때 사용된다.

- out, ref 키워드를 사용하면 메서드에서 값을 반환하는 것이 아니라, 매개변수를 이용하여 값을 전달할 수 있다.


out 키워드

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

 

- out 키워드는 메서드에서 반환 값을 매개변수로 전달하는 경우에 사용한다.


ref 키워드

 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 키워드는 메서드에서 매개변수를 수정하여 원래 값에 영향을 주는 경우에 사용한다.