블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

05-15 00:01

Recent Post

Recent Comment

Recent Trackback

Archive

2015. 5. 19. 11:05 Programming/.NET

 

작성날짜    : 2011-03-24


참고 : http://msdn.microsoft.com/ko-kr/library/ms173114.aspx

선문비트 프로젝트 : http://cafe.daum.net/smbitpro?t__nil_cafemy=item

 

Method(메서드)

메서드는 수행해야 할 구문을 포함하는 코드 블록입니다.  프로그램에서 메서드를 호출하면 포함하는 코드 블록을 수행하게 됩니다.  이렇게 메소드를 호출하기 위해서는 호출자와 피 호출자 사이에 약속이 필요하게 되는데 이를 메서드 시그니처라 할 수 있습니다.

메서드 시그니처에는 메서드의 이름과 반환 형식, 입력 매개 변수 리스트, public, private등의 액세스 수준과 abstract과 같은 선택적 한정자로 구성이 됩니다.

 

매개변수

매서드의 매개변수는 해당 메서드를 수행하는데 있어서 필요한 인수를 호출부에서 넣어서 전달된 것을 말합니다.

매개변수로 값 형식의 매개변수가 전달이 될 때는 호출부에서 전달한 인자의 값을 복사하여 전달되는 것으므로 피호출 메서드에서 매개 변수의 값을 변경하더라도 호출한 곳에 변수 값이 바뀌지 않습니다.

참조 형식의 매개변수는 전달된 인자 인스턴스에 대한 참조를 전달 받게 됩니다.  즉, 입력 매개 변수가 참조하는 인스턴스와 호출하는 곳에서 전달한 인스턴스는 동일한 인스턴스라는 것입니다.

하지만, 피호출 메서드에서 입력 매개 변수에 새로운 인스턴스를 생성을 한다고 해서 호출하는 곳에 인자 변수가 참조하는 인스턴스가 바뀌지 않습니다.

만약, 피호출 메서드에서 수행한 것을 그대로 반영하기 위해서는 ref  매개변수나 out 매개변수를 사용해야 합니다.

ref out의 차이점은 호출하는 곳에서 입력 인자를 초기화를 해서 보내야 하는가에 대한 차이가 있습니다.

 

 

 

// 매개변수에 대하여 이야기 할 것이다.

namespace AboutMethod

{

    class Program

    {

        static void Main(string[] args)

        {

            int i = 2;

            int j = 3;

            int k = 4;

 

            Foo(i, out j, ref k);

            Console.WriteLine("{0}{1}{2}", i, j, k);

 

        }

 

        // ref로 얻어온 함수를 가지고 안에서 어떠한 일을 할 것이다.

        // 안에서 수행할 결과를 호출한 곳에서도 결과를 알아야 한다.

        private static int Foo(int i, out int j, ref int k)

        {

            i = 3;

            j = 3;

            k = 3;

        }

    }

}


'Programming > .NET' 카테고리의 다른 글

[.NET] Object (객체)  (0) 2015.05.19
[.NET] Constructor(생성자)  (0) 2015.05.19
[.NET] Static  (0) 2015.05.19
[.NET] Const 와 readonly  (0) 2015.05.19
[.NET] Property(속성)  (0) 2015.05.11
posted by Kanais