본문 바로가기

(신)회사/개인 공부

ref 와 out 차이

ref (안에 물건이 있는 상자)

내가 너한테 사과가 들어있는 상자를 줬어.
너는 그 사과를 바나나로 바꿔서 다시 나한테 돌려줘!

void ChangeFruit(ref string fruit)
{
    fruit = "바나나";  // 과일을 바꿈
}

string myFruit = "사과";  // 상자에 "사과"를 넣음
ChangeFruit(ref myFruit);
Console.WriteLine(myFruit);  // 출력: 바나나

 

즉, ref는 원래 있는 값을 바꿀 때 사용해!
(함수에 넘기기 전에 꼭 값을 넣어야 해!)


out (빈 상자)

내가 너한테 빈 상자를 줬어.
너는 그 안에 오렌지를 넣어서 나한테 돌려줘!

void GiveFruit(out string fruit)
{
    fruit = "오렌지";  // 과일을 넣어 줌
}

string myFruit;  // 빈 상자 (값 없음)
GiveFruit(out myFruit);
Console.WriteLine(myFruit);  // 출력: 오렌지

 

즉, out은 새 값을 줄 때 사용해!
(함수에서 반드시 값을 넣어야 해!)


 정리

쉽게 말하면, ref는 있는 걸 바꾸는 것, out은 새 걸 받는 것이야! 

 

'(신)회사 > 개인 공부' 카테고리의 다른 글

델리게이트 & 이벤트 (delegate & event)  (1) 2024.11.07
델리게이트 (delegate)  (2) 2024.11.07