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