C#

53.C# - 무명메서드(익명메서드 : Anonymous Method )

Godffs 2009. 8. 13. 19:36
반응형
무명(익명 : Anonymous Method) : 대리자에 등록되는 메서드 중 간단한 기능이면서 생략해서 사용하고자 할 때 사용되며 메서드의 역활을 할 수 있도록 하는 것입니다.

 Program.cs
using System;

namespace 무명메서드
{
    //[3]대리자 선언
    public class Button
    {
        //SayHandler 대리자타입 사용으로 Click 이벤트 생성
        public event SayHandler Click;
       
        //이벤트 발생 메서드 (이벤트 핸들러 생성)

        public void OnClick(string msg)
        {
            if (Click != null)
            {
                Click(msg);
            }
        }       
    }

    public delegate void SayHandler(string mag);
    public class Program
    {
        public static void Say(string msg) { Console.WriteLine(msg); }
        public static void Main(string[] args)
        {
            //[1] 메서드 호출
            Program.Say("안녕"); Say("안녕");

            //[2]대리자를 통해서 대신 호출
            SayHandler sh = new SayHandler(Say);
            sh += new SayHandler(Program.Say);
            sh("방가"); //실행

            //[3] 이벤트와 이벤트 처리기를 통하여 등록해서 호출
            Button btn = new Button();
           
            btn.Click += new SayHandler(Say);
            btn.Click += Say;//축약형

            btn.OnClick("또봐");//실행

            //[4]무명메서드 : 간단하게 메시지만 출력하는 기능이라면 함수 X
            SayHandler hi = delegate(string msg)
            {
                Console.WriteLine(msg);
            };
            hi("언제"); hi("언제");
            Button button = new Button();
            button.Click += delegate(string msg) {
                 Console.WriteLine(msg); };

            button.Click += delegate(string msg) {
                 Console.WriteLine(msg); };

            button.OnClick("내일");
        }
    }
}

결과화면


53.Anonymous_Method.zip
다운로드

반응형