C#/문제 해결

외부 클래스 3개를 이용한 람다 Action<>

Bueong_E 2023. 1. 12. 00:00
반응형
SMALL

App Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study10
{
    class App
    {
        //생성자 
        public App()
        {
            //"히어로"가 "보물상자"를 열어 "아이템"을 얻는다.
            Hero hero = new Hero("링크"); //히어로 클래스 생성
            Chest chest = new Chest();
            hero.open = (link) => {
                Console.WriteLine("히어로({0})가 상자를 오픈 했습니다.", hero.Name);
            };
            Item item = chest.IsOpen();
            
            //출력 
            //히어로가 상자를 열었습니다.
            //상자에서 아이템 루피가 나왔습니다.
            //아이템을 얻었습니다. 루피
        }
    }
}

 

Hero Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study10
{
    class Hero
    {
        Action<Chest> open;
        string Name
        {
            get; set;
        }
        public Hero(string name)
        {
            this.Name = name;
        }
        
    }
}

Chest Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study10
{
    class Hero
    {
        Action<Chest> open;
        string Name
        {
            get; set;
        }
        public Hero(string name)
        {
            this.Name = name;
        }
        
    }
}

Item Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study10
{
    class Item
    {
        public string Name
        {
            get;
            private set;
        }
        //생성자 
        public Item(string name)
        {
            this.Name = name;
            Console.WriteLine("아이템 {0}을 얻었습니다.", this.Name);
        }
        
    }
}

 

 미완성,   Action 사용에 대해 좀더 이해할 필요가 있어보인다.

목표는 히어로 생성 -> 상자생성 -> 히어로가 상자를 열고 상자의  IsOpen  메서드를 호출 -> 상자의 IsOpne 메서드에서 Item Class생성 -> Item Class를 히어로 에게 반환

 

좀더 목표를 명확히 할 필요도 있어보인다.

 

반응형
LIST