S_pot

C#_MessageMap기법: 속성으로 문자와 delegate를 만들어 효율적으로 값을 호출 본문

C#

C#_MessageMap기법: 속성으로 문자와 delegate를 만들어 효율적으로 값을 호출

S_pot 2021. 6. 14. 10:12
 class Program
    {
     delegate void SMART();

        static void Test1()
        {
            Console.WriteLine("Test1");
        }
        static void Test2()
        {
            Console.WriteLine("Test2");
        }
        static void Test3()
        {
            Console.WriteLine("Test3");
        }
    
        // MessageMap 기법:
        struct MessageMap
        {
            public string Name { get; set; }    // 속성값 설정
            public SMART Handle { get; set; }
        }

        static void Main(string[] args)
        {
            MessageMap[] Map = new MessageMap[]{
                new MessageMap{Name = "일", Handle = Test1 },    // 속성값을 설정했기 때문에 값을 직접 입력할 수 있다.
                new MessageMap{Name = "이", Handle = Test2 },
                new MessageMap{Name = "삼", Handle = Test3 }
            }
            ;

            string command;

            while(true)
            {
                Console.Write("명령을 입력하세요 : ");
                command = Console.ReadLine();
                foreach (var item in Map)
                {
                    if(item.Name == command)
                    {
                        item.Handle();
                    }
                }
                if(command == "exit")
                {
                    break;
                }
            }
        }
     }