핰 노느라 며칠 공부못했다
어쨋든 오늘부터 다시 정진이다
지금 ref, out 에 대해서 배움
여기서 든 궁금증이 참조 형식에 대해 ref로 넘겨주든 그냥 넘겨주든
결과값은 같아도(같은 힙을 참조하니까) ref로 넘겨주고 받는게 효율더 좋다고 봐야함?
내가 생각한 이유는 그냥 보내면 스택에 참조변수가 새로 생기지만
ref로 보내면 그 자체를 읽어들이기때문에 새로운 참조변수가 안쌓이자나
맞음?
핰 노느라 며칠 공부못했다
어쨋든 오늘부터 다시 정진이다
지금 ref, out 에 대해서 배움
여기서 든 궁금증이 참조 형식에 대해 ref로 넘겨주든 그냥 넘겨주든
결과값은 같아도(같은 힙을 참조하니까) ref로 넘겨주고 받는게 효율더 좋다고 봐야함?
내가 생각한 이유는 그냥 보내면 스택에 참조변수가 새로 생기지만
ref로 보내면 그 자체를 읽어들이기때문에 새로운 참조변수가 안쌓이자나
맞음?
ref는 매개변수를 참조 가늘한거 out는 out전용 - dc App
ref이갸 나름 유용함 - dc App
ㄴ 뭔말인지 이해를못했네. 두개의 동작방식은 배워서 알고있고. 내가 궁금한것은 값형식이 아닌 참조형식을 변경하는 매개변수에서 ref로 보내나 그냥보내나 결과값의 차이가 없을거아냐 같은 힙주소를 참조하는거니까. 하지만 그냥 보낼때는 새로운 참조매개변수를 만들어서 같은 힙주소를 가리키게 하니까 매번 새로운 참조변수를 만들어낼거아냐. 그럼 같은 결과라도 무조건 ref로 보내는게 더 효율이좋냐는게 질문임
참조변수던 지역변수던 어차피 새로 생성되는건 매한가지. 즉, 주소값 크기보다 큰건 참조로, 작은건 그냥 value passing으로 하는게 좋다.
ㄴ 참조변수에대해 ref 매개인자로 값을 변경하면 스택에 있는 같은 참조변수에 접근하는거자나. ref 없이보내면 새로운 참조변수를 만들어 같은 힙을 가르키게 하는거고. 이게 차이점이 없다고? 적어도 스택에 새로운 참조변수를 만들지는 않을거아냐. 아니면 내가 뭔가 잘못 생각했나?
ㄴ 참조변수는 참조타입에 포함된 이미 만들어진 필드멤버를 말한거
ref는 변수에대한 참조를 전달하는 매개변수고 class struct 둘다 가능함
struct의 경우엔 복사비용이 클 수도 있어서 성능에 영향이 있을수도 있지만 class는 어차피 포인터를 전달하는거라 복사비용은 똑같음
ㄴ 다시 정리해서 질문올림 함 봐줘