2010년 7월 6일 화요일

파라미터의 전달 방법

#
파라미터의 전달 방법

1. 값에 의한 전달
    - 값 자체를 전달한다. 파일을 복사하는 것과 유사

2. 참조에 의한 전달(ref)
    - 값이 저장된 장소를 전달한다는 의미이다. 파일을 복사할 때 단축아이콘을 만드는 것과 유사
public static void foo(ref int i){}라고 메서드를 정의하고,
Main메서드에서 위 메서드를 호출하는 부분에서
foo(ref n);
이라고 호출하면 변수가 주소값으로 서로 연결된다는 의미.

3. 출력용 파라미터로 전달(out)
public static int TestOut(out char c){}라고 메서드를 정의
이 메서드 내에 c를 초기화 해놓고, return이 따로 존재한다.
호출하는 측에서, 즉, Main메서드에서 TestOut에 보낼(입력할) 파라미터가 초기화가 되어있지 않다.
이 때, TestOut(out c) 라고 호출하면,
Main메서드 안의 호출하는 측에서 메서드에 입력하는 파라미터가 없고, 메서드 자체에서 알아서 출력한다.
...(out c) 라고 초기화 되지 않은 c를 호출하면 메서드 측에서 알아서 처리하여 출력값을 정하고, (c) 그냥 c라고 역시 초기화되지 않은 파라미터를 입력하면 return값이 출력된다.
정리 : 피호출자, 즉, 메서드 정의단계에서 값이 할당되어, 호출자(Main메서드에서 실제 그 메서드를 사용하는 측)에서는 그냥 출력을 받게 된다. 그래서 '출력파라미터' 라고 한다.

4. 가변길이로 전달(params)
반드시 1차원 배열로 파라미터를 받을 수 있다. 콤마로 여러개의 파라미터가 들어갈 수 없다. 하나의 1차원 배열 파라미터만 가능하다.

댓글 없음:

댓글 쓰기