using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld
{
class App
{
public delegate void Del();
Goblin goblin;
//생성자
public App()
{
this.goblin = new Goblin();
goblin.onAttackComplete = this.OnAttackComplete;
goblin.ChangeState(Goblin.eState.Idle);
goblin.ChangeState(Goblin.eState.Attack);
goblin.GetState(this.goblin);
}
private void OnAttackComplete()
{
this.goblin.ChangeState(Goblin.eState.Idle);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld
{
class Goblin
{
public App.Del onAttackComplete;
public enum eState
{
Idle, Attack
}
eState state;
//생성자
public Goblin()
{
}
public void ChangeState(eState state)
{
onAttackComplete();
}
public void GetState(Goblin goblin)
{
Console.WriteLine("현재상태: {0}", goblin.state);
}
}
}
process is terminated due to stackoverflowexception