언어 자료구조 알고리즘/C# 언어 문법

13.메소드

언제나휴일 2009. 8. 19. 05:47
반응형

메소드(Method)

 

다루는 내용

 - ref

 - out

 - params

 

 메소드는 특정 기능을 수행하는 코드의 집합이다. 

메소드는 액세스 한정자와 반환값, 메소드 명, 매개변수로 구성된 시그니쳐 부분과 수행해야 할 코드 블록으로 구성된다.

 

class Example

{

    public int Add(int a,int b)

    {

        return a+b;

    }

}

 

액세스 한정자에 대해서는 별도의 항목에서 다루기로 하고 매개변수전달에 대해서 먼저 살펴보자.

C#에서는 참조로 매개변수를 전달하기 위해 refout키워드를 제공하고 있다.

out은 입력된 값은 해당 메소드를 수행하는데 아무런 의미가 없고 호출하는 곳에서 결과값을 원할 때 사용이 된다.  즉, return으로 반환받는 개수가 한 개로 한정된 것을 out을 통해 해소할 수가 있다.

ref는 입력된 값이 해당 메소드에서 의미가 있고 호출하는 곳에서도 결과값을 원할 때 사용이 된다.  'C#이 Java와 쌍둥이 언어다'라고는 하나 이 부분에 대해서는 Java에 없는 새로운 문법 사항이다.

또한 가변인자를 전달하기 위해 params키워드를 제공하고 있다.

 Look & Feel & Think     

 

out 매개변수의 경우 참조 형식으로 매개변수가 넘어오며 그 목적이 피 호출 메소드에서 수행한 결과값을 호출한 곳에서 확인하기 위함이다.  그러한 연유로 피호출 메소드에서 out매개변수의 아무런 변화를 주는 코드가 없는 것은 논리적으로 맞지 않기 때문에 에러가 나고 있는 것이다.

 

다음은 out매개변수를 활용하는 적절한 예와 실행 결과이다.

 

 Look & Feel & Think     

ref매개변수의 경우는 피호출 메소드에서 해당 값을 사용도 하며 호출 메소드에서 그 값의 변화를 확인하기 위함이다.  그러한 이유로 호출하는 메소드에서 값이 할당되지 않은 지역 변수를 사용하는 것은 논리적인 오류이다.

 

다음의 예제는 ref매개변수를 잘 사용하는 예와 실행 결과이다.

 

 Look & Feel & Think   

C#에서의 가변인자의 사용은 아래의 예처럼 사용이 용이하다.  주의할 사항은 params은 입력 매개변수 리스트의 맨 우측에만 올 수 있다는 것이다.

반응형

'언어 자료구조 알고리즘 > C# 언어 문법' 카테고리의 다른 글

17. 인터페이스(Interface)  (0) 2009.08.19
16. 다형성  (0) 2009.08.19
15. 상속  (0) 2009.08.19
14.정적 클래스 및 정적 멤버  (0) 2009.08.19
12. 속성(Property)  (0) 2009.08.19
11.Class  (0) 2009.08.19
10.Casting  (0) 2009.08.19
9.String  (0) 2009.08.19
8. Object  (0) 2009.08.19
7. 배열  (0) 2009.08.19