[C#] Delegate 델리게이트 무명 메서드.

 • 델리게이트 무명 메서드 예제.

  • 익명메서드, 익명대리자,
  • 메서드 인데 이름이 없음. 인스턴스 식으로 그때그때 간단히 사용할 때 씀.

• ExamDelegate03.cs

/**
 * @file    ExamDelegate03.cs
 * @brief   델리게이트 무명 메서드.
 * @details 델리게이트 무명 메서드 사용 예제.
 * @version  0.0.1
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StudyCSharp_Bong9
{
    namespace ExamDelegate03
    {
        /**
         * @brief    델리게이트 무명메서드 예제 클래스.
         * @author   김봉재.
         * @date     2014-08-07
         */
        class ExamDelegate
        {
            ///@brief 델리게이트 선언.
            delegate int DelegateMethod(int a, int b);

            static void Main(params string[] args)
            {
                DelegateMethod method = null;
                ConsoleKeyInfo c;
                bool menu = true;
                int ia = 0, ib = 0;

                while (true)
                {
                    while (menu)
                    {
                        Console.WriteLine("A. 덧셈");
                        Console.WriteLine("B. 뺄셈");
                        Console.WriteLine("C. 곱셈");
                        Console.WriteLine("Q. 끝");
                        Console.Write("Press a Key : ");

                        c = Console.ReadKey(false);

                        Console.Write('\n');

                        switch (c.KeyChar)
                        {
                            case 'A' :
                            case 'a' :
                                method = delegate(int a, int b) { return a + b; };
                                menu = false;
                                break;
                            case 'B':
                            case 'b':
                                method = delegate(int a, int b) { return a - b; };
                                menu = false;
                                break;
                            case 'C':
                            case 'c':
                                method = delegate(int a, int b) { return a * b; };
                                menu = false;
                                break;
                            case 'Q':
                            case 'q':
                                return;
                            default :
                                Console.WriteLine(" ?? Press A,B,C and Q ");
                                break;
                        }
                    }

                    Console.Write("첫번째 수를 입력하세요 : ");
                    ia = int.Parse(Console.ReadLine());
                    Console.Write('\n');

                    Console.Write("두번째 수를 입력하세요 : ");
                    ib = int.Parse(Console.ReadLine());
                    Console.Write('\n');

                    Console.WriteLine("(a = {0})와 (b = {1}) 의 결과는 {2} 입니다.", ia, ib, method(ia, ib));
                    menu = true;

                    Console.Write('\n');
                    Console.Write('\n');
                }
            }
        }
    }
}
C#에 게시됨

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.