[C# 고급문법] #3 익명 메소드 (Anonymous Method) delegate

반응형
반응형

 

# 익명 메소드 (Anonymous Method) 

* 개인적인 공부 기록용으로 작성한 포스팅 이기에 잘못된 내용이 있을 수 있으며, 추가하거나 수정할 내용이 있다면 지속적으로 수정해 나갈 예정입니다.

*delegate(대리자)에 관한 내용에 대한 지식이 부족하다면, 다음 포스팅을 참고해 주세요. #2 Delegate


# 익명 메소드 (Anonymous Method) 란?

이름을 갖고 있는 보통의 메소드들과 달리 익명 메소드는 이름을 갖고 있지 않습니다.

익명메소드를 사용하는 절차는 다음과 같습니다.

 

1. 대리자(delegate)를 선언한다.

2. 대리자의 인스턴스를 만든다.

3. 대리자의 인스턴스에 delegate 키워드와 함께 코드 블록을 작성한다. (익명 메소드 작성)

익명 메소드 선언 방식은 아래와 같습니다.

대리자_인스턴스 = delegate (매개변수1, 매개변수2 ...)
{
//..코드
};

단, 익명 메소드를 선언할 때는 자신을 참조할 대리자의 형식과 동일한 형식으로 선언 해야만 합니다.

    delegate int Plus(int x, int y); // 1,대리자(delegate) 선언

    class Program
    {
        static void Main(string[] args)
        {
            Plus plus; // 2.대리자 인스턴스 생성
            
            //3.익명 메소드 (Anonymous Method) 작성
            plus = delegate (int x, int y)
            {
                return x + y;
            };

            Console.WriteLine("1 + 2 = {0}", plus(1, 2));
        }
    }

대리자가 참조할 메소드를 넘길 때 이 메소드를 두 번 다시 사용하지 않을 것 같다고 판단 된다면 익명 메소드를 사용하면 됩니다. 그런데, 보통 익명 메소드 보다는 람다(Lamda)식을 이용해서 구현 하기는 하지만 람다를 공부하기 위해서는 익명 메소드에 관한 내용을 먼저 숙지해야 한다고 판단하여 이렇게 정리 하게 되었습니다.


반응형

댓글

Designed by JB FACTORY