본문 바로가기

C#/수업 내용

대리자연습6 고블린 (오류)

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

'C# > 수업 내용' 카테고리의 다른 글

대리자연습8  (0) 2021.12.24
대리자연습6 고블린 (오류수정)  (0) 2021.12.24
대리자 연습 5  (0) 2021.12.24
대리자 연습4  (0) 2021.12.24
대리자 연습 3  (0) 2021.12.24