스토리지

[3.22] 매개변수가 있는 delegate 본문

Unity/수업내용(C#)

[3.22] 매개변수가 있는 delegate

ljw4104 2021. 3. 22. 12:38
using System;

namespace Study09
{
    //1. 델리게이트 선언
    public delegate void DelMoveComplete(int id);
    public class Marine
    {
        public int Id
        {
            get;
            private set;
        }

        //3-1. 델리게이트 변수선언
        public DelMoveComplete moveComplete;
        public Marine(int id)
        {
            this.Id = id;
        }

        public void Move()
        {
            Console.WriteLine("[Marine] 마린 이동합니다.");

            //델리게이트 호출
            this.moveComplete(this.Id);
        }
    }
}​
using System;

namespace Study09
{
    public class App
    {
        public App()
        {
            //마린 생성
            Marine marine = new Marine(123145);

            //3-2 .델리게이트 인스턴스화
            marine.moveComplete = this.MoveComplete;

            //마린 이동 -> 이동완료
            marine.Move();
        }

        //2. 마린 델리게이트에 연결할 메서드 정의
        public void MoveComplete(int id)
        {
            Console.WriteLine("Marine({0})가 이동 완료", id);
        }
    }
}
  • 넣고자 하는 매개변수를 delegate와 맞추면 된다.
  • App 클래스의 MoveComplete에서의 id는 Marine에서부터 온다.

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

[3.23] 익명 함수, 람다 식, LINQ  (0) 2021.03.23
[3.22] Action 대리자  (0) 2021.03.22
[3.22] delegate 연습  (0) 2021.03.22
[3.22] delegate 대리자  (0) 2021.03.22
[3.19] Partial 클래스 (분할 클래스)  (0) 2021.03.19
Comments