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에서부터 온다.