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("텔레포트입니다!");
}
}
}
콘솔실행화면
이해하기가 어렵다면 비주얼 스튜디오를 켜고 한 번 따라써보자. 좋은예인지는 모르겠다.