내용 보기
작성자
관리자 (IP : 172.17.0.1)
날짜
2022-04-01 08:23
제목
[C#] 참조 로컬과 참조 반환
이번엔 간단한 내용에 대해 포스팅 하려고 합니다. ref 키워드 (참조)에 관한 내용 입니다. C# 7 버전에서는 로컬 변수와 메서드가 반환하는 값을 참조형식으로 전달(메모리 주소를 넘김) 할 수 있는 ref키워드를 제공합니다. 간단한 샘플 코드를 통해 알아 보겠습니다. 참조 로컬로컬 변수를 선언하고 값을 대입할때 참조형태로 전달할 수 있습니다.
출력 결과는
num2 로컬 변수에 num1의 값을 참조 형태로 전달한 결과 num1의 값이 변경될때 같이 영향을 받습니다. 당연히 그 반대로 num2의 값이 변경 되었을때 num1변수가 영향 받습니다. 읽기전용 참조 로컬참조 로컬 변수를 ref readonly키워드 사용으로 읽기 전용으로 지정할 수 있습니다.
참조 반환ref키워드 사용으로 메서드의 값을 반환할때 참조 형식으로 반환 할 수 있습니다. 이렇게 사용되면 호출자에서 값 수정시 호출 메서드 내부에서 반영 됩니다. MS Docs에 심플한 예제가 있습니다.
GetBookByTitle() 메서드를 통해서 title에 해당 되는 Book를 찾고 그 결과에 대해 참조로 해당 객체를 반환 하고 있습니다.
출력 결과는
GetBookByTitle() 메서드로 반환된 Book객체 속성 변경시 대상 객체도 영향 받는 모습을 확인 할 수 있습니다. |
출처1
출처2