namespace Study01
{
public class App
{
//생성자
public App()
{
Console.WriteLine("App클래스 생성자 호출됨");
SiegeTank tank = new SiegeTank(SiegeTank.Mode.Tank);
tank.onChangeMode = (beforeMode, afterMode) => {
Console.WriteLine($"{beforeMode} -> {afterMode}");
};
tank.ChangeMode(SiegeTank.Mode.Siege);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Study01.SiegeTank;
namespace Study01
{
public class SiegeTank
{
public enum Mode
{
Tank,
Siege
}
public Mode state;
public Action<Mode, Mode> onChangeMode;
public SiegeTank(Mode mode)
{
this.state = mode;
Console.WriteLine($"시즈 탱크가 생성되었습니다. 모드:{this.state}");
}
public void ChangeMode(Mode mode)
{
Mode brforeMode = this.state;
this.state = mode;
this.onChangeMode(brforeMode, this.state);
}
}
}