2016년 5월 21일 토요일

ref와 out의 차이

MSDN:
ref  :

- 인수가 값의 복사가 아닌 참조로 전달
- ref 키워드를 사용하려면 메서드 정의와 메서드 호출 모두 명시적으로 ref를 사용해야 한다.
- ref 매개 변수에 전달 되는 인수는 전달 되기 전에 초기화 해야 합니다.
- 이러한 방식은 명시적으로 초기화할 필요가 없는 out과 다른 부분이다.
- ref와 out은 오버로딩 되지 않는다.
- 이렇게 생성하면 컴파일 되지 않는다.

- ref와 out은 다음과 같은 메서드에서는 사용할 수 없습니다.
     
          1. 비동기(async) 한정자를 사용하여 정의된 비동기 메서드
          2. yield return 또는 yield break문을 포함하는 반복기 메서드


out :
- ref와 비슷하다.
- 참조를 통해 인수를 전달할 수 있다.
- out 매개 변수를 사용하려면 메서드 정의와 호출 메서드가 모두 명시적으로 out 키워드를 사용해야 한다.


- ref 파트에서 설명한 것과 같이 둘은 오버로드 되지 않는다.

-둘의 차이점 :
 
     ref : 메서드 내부에서 변수를 수정하려고 할 때 사용
    out : 메서드 내부에서 생성된 값을 반환하려 할 때 사용

댓글 없음:

댓글 쓰기