// delegate -> 형식이지만 함수 자체를 인자로 넘겨주는 형식 // 반환은 int 입력은 void // Onclicked가 delegate 형식의 이름이다 //이러한 함수들은 수정할 수 없게 배포되는 경우가 있음 static void ButtonPressed(Onclicked clickedFunction) { // PlayerAttack(); // 현실적으로 힘들 수 있음(설계적으로나, 실제적으로나) // 그렇기 때문에 UI와 기능은 분리하는 것이 좋음 clickedFunction(); }
static void Main(string[] args) { //대리자 //ButtonPressed(TestDelegate); Onclicked clicked = new Onclicked(TestDelegate); clicked += TestDelegate2; ButtonPressed(clicked); }
// 유의해야 할 점 // 함수가 아니라 형식이다. // 분석방법 // delegate > 형식은 형식이지만 // 함수자체를 인자로 넘겨주는 그런 형식 // 반환은 int, 입력은 : void // 전체 네임 OnClicked이 delegate 형식의 이름이다. static void ButtonPressed(Onclicked clickedFunction /* 함수 자체를 인자로 넘겨준다.*/) { // 3. // 버튼이 눌릴 시 어떤 버튼인지 체크해서 // 플레이러를 공격하는 버튼을 생성한다 // 5. // 함수를 호출(); // 9. 함수를 호출 clickedFunction(); }