모름

http://blog.naver.com/PostView.nhn?blogId=ssm_sebiya&logNo=140095970728

 

C#으로 함수 포인터를 이용해보자 (delegate)

C#으로 함수 포인터를 이용하는 방법..;; 뭐 설명이랄 것도 없다. Delegate 를 이용해서 가능하기 때문이...

blog.naver.com

함수를 포인터로 지정하여 변수인자로 넣는 방법을 소개한다. delegate를 이용하고 있다.

 

아래는 따라쓰면서 연습해본 코드이다. 컨셉은 게임 내 플레이어가 첫 스킬을 받고 태어난다. 그리고 그 스킬을 확인할수있다.

 

작성코드

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace delegateTest {

    public delegate void FunctionPointer();

    public class Player {

        string name;
        FunctionPointer InitialSkills;

        public Player(string name, FunctionPointer skil)
        {
            this.name = name;
            this.InitialSkills = skil;
        }

        public void ShoutFirstSkill()
        {
            Console.WriteLine("{0}님의 첫 스킬은 ", name);
            InitialSkills();
        }

    }

    public class Program {
        public static void Main()
        {
            Player player1 = new Player("전사가될꺼야", FireBall);
            Player player2 = new Player("김철수", Teleport);

            player1.ShoutFirstSkill();
            player2.ShoutFirstSkill();
        }

        public static void FireBall()
        {
            Console.WriteLine("파이어볼입니다!");
        }

        public static void Teleport()
        {
            Console.WriteLine("텔레포트입니다!");
        }
    }
}

콘솔실행화면

 

이해하기가 어렵다면 비주얼 스튜디오를 켜고 한 번 따라써보자. 좋은예인지는 모르겠다.