Anonymous Methods

무명 메소드(Anonymous Methods)에 대해서 알아보자.

1. 무명 형식 (Anonymous Type)


C#에는 이름이 없는 형식(타입)이 존재하는데, 이를 무명형식(Anonymous Type)이라 한다.
임시 변수가 필요할때 사용된다. 사용 방법은 다음과 같다.

            var temp = new { age = 20, name = "simpson" };
            Console.WriteLine("age={0}, name={1}", temp.age, temp.name);

무명형식은 선언과 동시에 new 키워드로 인스턴스를 생성해야 한다.
생성된 인스턴스는 읽기 전용이다.

2. 무명 메소드 (Anonymous Method)


이름이 없는 메서드로 delegate와 함께 사용할수 있다.
사용 예는 다음과 같다.

button1.Click += delegate(System.Object o, System.EventArgs e)
                   { System.Windows.Forms.MessageBox.Show("Click!");    };


// Create a delegate.
delegate void Del(int x);

// Instantiate the delegate using an anonymous method.
Del d = delegate(int k)
       {
           /* ... */

        };

무명 메서드를 사용하면 코딩 오버헤더를 줄일수 있다.
무명 메서드의 실제  사용 예를 보자.

Plus, Minus 메서드를 무명 메서드로 작성 하였다.

    delegate int CalcDelegate(int a, int b);
    class Calc
    {
        public void Run(int a, int b, CalcDelegate dele)
        {
            Console.WriteLine(dele(a, b));
        }

        public int Plus(int a, int b) { return a + b;  }
        public int Minus(int a, int b) { return a - b; }

        public void Test()
        {
            //Run(10, 20, Plus);
            Run(10, 20,
                  delegate(int a, int b)
                  {
                     return (a + b);
                  });

            //Run(10, 20, Minus);
            Run(10, 20,
                   delegate(int a, int b)
                   {
                      return (a - b);
                   });
        }
    }



참조)
https://msdn.microsoft.com/ko-kr/library/0yw3tz5k.aspx