인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

아야어여님의 프로필 이미지
아야어여

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

작성

·

100

0

스크린샷 2024-09-30 231333.png스크린샷 2024-09-30 231350.png스크린샷 2024-09-30 231228.png강의에서는 out을 사용했을때 매개변수 할당 안해도 오류 없이 잘 되던데 제가 했을때는 out을 쓰면 할당을 해줘야하고 ref를 써보니까 할당 안해줘도 그냥 되네요..?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 아야어여님.

비주얼 스튜디오에서 outref를 사용하는 방식에 대해 궁금하신 것 같습니다. 이는 C#에서 종종 헷갈리곤 하는 부분입니다.
outref는 C#에서 매개변수 전달 방식의 차이점에서 주로 사용됩니다. out 키워드는 메서드가 리턴하기 전에 반드시 값을 할당해야 하는 매개변수에 사용하고, ref 키워드는 기존에 할당된 값을 메서드 내에서 변경할 수 있게 합니다.

다음 링크는 유사한 질문에 대한 답변입니다. 참고하시면 도움이 될 것입니다:

유사한 질문과 답변 URL:

  • 왜 ref 대신 out을 사용하시나요??
    • 요약: ref는 호출한 쪽에서 미리 초기화된 변수를 전달해야 하지만, out은 메서드 내부에서 반드시 값을 할당해야 합니다. refout의 차이점을 설명하고 코드 예제를 제공합니다.

또한, 다음 삽입된 이미지는 C# 코드에서 refout 키워드의 사용법에 관련된 것입니다:
- Image describing ref and out.

유사한 오류와 해결 링크

  • 이게 뭔말인가요
    • 요약: CS0177 오류와 같은 out 매개변수 할당 오류에 대한 설명이 있습니다. out 매개변수는 메서드 종료 전에 반드시 값을 할당해야 한다는 점을 강조합니다.

질문해주신 예시에서 나오는 혼동은 outref 사용 시의 초기화와 할당 문제에서 비롯된 것 같습니다. out 키워드를 사용할 때는 해당 매개변수를 반드시 메서드 내에서 초기화해야 합니다. 반면, ref 키워드를 사용할 때는 이미 초기화된 값을 전달받아야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

아야어여님의 프로필 이미지
아야어여
질문자

강의에서는 out 매개변수를 할당 안하고도 잘되는 이유가 궁금한거에요..

아야어여님의 프로필 이미지
아야어여

작성한 질문수

질문하기