달력

02

« 2012/02 »

  •  
  •  
  •  
  • 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
  •  
  •  
  •  
2008/11/30 00:06

익명 메서드(Anonymous Methods) General .NET2008/11/30 00:06


익명 메서드(Anonymous Methods)

- 메서드를 통해 처리하는 내용을 인라인의 형태로 처리하는 방법을 제공
- delegate를 통해 메서드를 호출하는 경우 호출할 수 있는 메서드의 타입을 델리게이트를 생성하면서 선언하고, 이벤트가 발행하였을 경우에 델리게이트를 통해 선언된 메서드를 호출, 작업처리 

using System;
using System.Collections.Generic;
using System.Text; 

namespace SimpleDelegateSample
{

    delegate int AnyDelegate();

    class Program
    {
        public static void AnyMethod(AnyDelegate ad)
        {
            Console.WriteLine(ad());
        }

        static void Main(string[] args)
        {
            int x = 10;
            int y = 20;
            AnyDelegate ad = delegate{ return x * y; };
            AnyMethod(ad);
        }
    }
}

 

코드 설명

1. Main()를 실행

2. int 타입의 x, y변수에 각각 10과 20이라는 값을 할당.

3. ad라는 변수를 선언하고 데이터 타입을 AnyDelegate(사용할 메서드의 타입)로 한다.

4. delegate를 사용하여 상단에 선언된 AnyDelegate()가 해야 할 일을 구현하고 ad에 할당한다.

5. AnyMethod()ad를 전달한다. 이 때 adAnyDelegate 타입이다.

6. 인자로 전달된 ad를 콘솔에서 실행하고 결과를 확인한다.

저작자 표시 비영리 변경 금지

'General .NET' 카테고리의 다른 글

세티가 정리한 VB.NET(2)  (0) 2008/11/30
세티가 정리한 VB.NET(1)  (2) 2008/11/30
익명 메서드(Anonymous Methods)  (0) 2008/11/30
Nullable 타입  (0) 2008/11/30
DataTable.NewRow  (0) 2008/11/30
닷넷2.0을 시작하며...  (0) 2008/07/22
Posted by -세티-